powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / добавить узел после текущего
12 сообщений из 12, страница 1 из 1
добавить узел после текущего
    #37962172
buyboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всем привет

не получается добавить новый узел после тэга у которого нет обертки-контейнера...

в варианте, когда у тэга есть "удобный" родитель, то все гут =
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
<form method="post" action="" name="form1" id="form1">
  <table>
    <tr>
      <td>От кого</td>
      <td><input type="text" name="text" id="text" value="значение INPUT type TEXT" size="55"></td>
    </tr>
    <tr>
      <td>Кому</td>
      <td><input type="text" name="emptytext" id="emptytext" value="" size="55"></td>
    </tr>
    <tr>
      <td>Сообщение</td>
      <td><textarea name="tarea" id="tarea" cols="77" rows="5">значение TEXTAREA</textarea></td>
    </tr> 
    <tr>
      <td></td>
      <td><input type="submit" name="button" id="button" value="отправить"></td>
    </tr>
  </table>    
</form>


Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
var form = document.forms.form1;
for(var i = 0; i < form.elements.length;i++){
  // если узел не кнопка
  if ( form.elements[i].type != 'submit' ) {
    if ( form.elements[i].value.length == 0 ) {
      // получили родительский узел найденного узла
      var par = form.elements[i].parentNode;
      // создали новый элемент
      var newSpanElem = document.createElement('span');
      // задали значение нового элемента
      newSpanElem.innerHTML = "поле не должно быть пустым";
      // задали стилевое оформление нового элемента
      newSpanElem.style.cssText = "padding-left:10px; color:red;";
      // добавили новый элемент в конец родительского
      par.appendChild(newSpanElem);
    }
  }
}


нужен хелп!
...
Рейтинг: 0 / 0
добавить узел после текущего
    #37962219
buyboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если нужно вставить перед узлом, то особых проблем не возникло =
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
<form method="post" action="" name="form1" id="form1">
  <input type="text" name="text" id="text" value="значение INPUT type TEXT" size="55">
  <br>
  <input type="text" name="emptytext" id="emptytext" value="" size="55">
  <br>
  <textarea name="tarea" id="tarea" cols="77" rows="5">значение TEXTAREA</textarea>
  <br>
  <input type="submit" name="button" id="button" value="отправить">    
</form>
  
<script>    
var form = document.forms.form1;
for(var i = 0; i < form.elements.length;i++){
  // если узел не кнопка
  if ( form.elements[i].type != 'submit' ) {
    if ( form.elements[i].value.length == 0 ) {
      // создали новый элемент
      var newSpanElem = document.createElement('span');
      // задали значение нового элемента
      newSpanElem.innerHTML = "поле не должно быть пустым";
      // задали стилевое оформление нового элемента
      newSpanElem.style.cssText = "padding-left:10px; color:red;";
      // добавили новый элемент перед нужным тегом
      form.insertBefore(newSpanElem, form.elements[i]);      
    }
  }
}
</script>
...
Рейтинг: 0 / 0
добавить узел после текущего
    #37962253
buyboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно решить обманным путем =
Код: javascript
1.
form.insertBefore(newSpanElem, form.elements[i+1].previousElementSibling);

, но хочется как-то более правильно
...
Рейтинг: 0 / 0
добавить узел после текущего
    #37962323
спан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
<form method="post" action="" name="form1" id="form1">
  <input type="text" name="text" id="text" value="значение INPUT type TEXT" size="55">
  <br>
  <input type="text" name="emptytext" id="emptytext" value="" size="55">
  <br>
  <textarea name="tarea" id="tarea" cols="77" rows="5">значение TEXTAREA</textarea>
  <br>
  <input type="submit" name="button" id="button" value="отправить">    
</form>


куда конкретно должен попасть спан по твоему замыслу?
...
Рейтинг: 0 / 0
добавить узел после текущего
    #37962331
buyboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спанкуда конкретно должен попасть спан по твоему замыслу?
после этого =
Код: html
1.
<input type="text" name="emptytext" id="emptytext" value="" size="55">
...
Рейтинг: 0 / 0
добавить узел после текущего
    #37962520
спан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
var txt = document.getElementById('emptytext'),
span = function(prop) {
   var span = document.createElement('span');
   span.innerHTML = prop.text;      
   span.style.cssText = prop.cssText;
   return span;
};

txt.parentNode.insertBefore(new span({
   text : "поле не должно быть пустым", 
   cssText : "padding-left:10px; color:red;"
}), txt.nextSibling);


незнаю, насколько кроссброузерно! в FF работает!
...
Рейтинг: 0 / 0
добавить узел после текущего
    #37962537
buyboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спаннезнаю, насколько кроссброузерно! в FF работает!
спасибо! полез анализировать
...
Рейтинг: 0 / 0
добавить узел после текущего
    #37962631
buyboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спан
Код: sql
1.
span = function(prop)...

я правильно понимаю, что в этом отрезке кода используется способ объявления функции, который называется Function Expression ? и результат отработки функции записывается в переменную span ?
...
Рейтинг: 0 / 0
добавить узел после текущего
    #37962644
buyboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спан
Код: sql
1.
prop

это объект (ассоциативный массив) ?

а тут спан
Код: sql
1.
2.
3.
4.
{
   text : "поле не должно быть пустым", 
   cssText : "padding-left:10px; color:red;"
}

мы записываем в объект пары ключ-значение?
...
Рейтинг: 0 / 0
добавить узел после текущего
    #37962646
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buyboyспан
Код: sql
1.
span = function(prop)...


я правильно понимаю, что в этом отрезке кода используется способ объявления функции, который называется Function Expression ? и результат отработки функции записывается в переменную span ?да.

только не обязательно вызывать ее new span(...) , можно просто span(...)
...
Рейтинг: 0 / 0
добавить узел после текущего
    #37962650
buyboy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Мечтолько не обязательно вызывать ее new span(...) , можно просто span(...) ок! понял, спасибо
...
Рейтинг: 0 / 0
добавить узел после текущего
    #37962680
спан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторможно просто span(...)
согласен... ;)
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / добавить узел после текущего
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]