Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / добавить узел после текущего / 12 сообщений из 12, страница 1 из 1
18.09.2012, 13:31:44
    #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
18.09.2012, 13:45:40
    #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
18.09.2012, 13:56:28
    #37962253
buyboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавить узел после текущего
можно решить обманным путем =
Код: javascript
1.
form.insertBefore(newSpanElem, form.elements[i+1].previousElementSibling);

, но хочется как-то более правильно
...
Рейтинг: 0 / 0
18.09.2012, 14:19:20
    #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
18.09.2012, 14:21:35
    #37962331
buyboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавить узел после текущего
спанкуда конкретно должен попасть спан по твоему замыслу?
после этого =
Код: html
1.
<input type="text" name="emptytext" id="emptytext" value="" size="55">
...
Рейтинг: 0 / 0
18.09.2012, 15:44:06
    #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
18.09.2012, 15:52:15
    #37962537
buyboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавить узел после текущего
спаннезнаю, насколько кроссброузерно! в FF работает!
спасибо! полез анализировать
...
Рейтинг: 0 / 0
18.09.2012, 16:44:52
    #37962631
buyboy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
добавить узел после текущего
спан
Код: sql
1.
span = function(prop)...

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

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

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

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


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

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


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