2012-05-16 2 views
1

У меня есть сценарий следующим образом:Выбрать все детско на всех уровнях

$('.Addable').find('input').each(function() { 
      if ($(this).attr('name')) { 
       var Name = $(this).attr('name'); 
       var Number = Name; 
       if (Name.substring(Name.length - 1) == ']') { 
        var Fi = Name.lastIndexOf("[") + 1; 
        var Li = Name.lastIndexOf("]"); 
        if (Fi > -1) { 
         Number = Name.substring(Fi, Li); 
         if (Number > Indx) { 
          Number = Number - 1; 
          $(this).attr('name', Name.substring(0, Fi) + Number + ']'); 
         } 
        } 
       } 
      } 
     }); 

Так что изменение Название input с отлично, гайка теперь мне нужно изменить все элементы, которые не только input s как select ые я думаю Заменить первую строку:

$('.Addable').children().each(function() { 

Но это не сработало, и как вы предлагаете выбрать все дочерние элементы?

+1

что такое HTML это? Какова область действия, когда вы говорите «все»? все потомки? – Joseph

+0

@Joseph. все === все :), просто привязывая, он, вероятно, действительно не хочет их ** все **. – gdoron

+0

Пожалуйста, используйте случай верблюда для переменных. – gdoron

ответ

5

Для ВСЕХ потомков вы можете сделать то, что предложил @gdoron. Если вы ищете для всех полей формы в целом, а не только input-х, вы можете использовать :input селектор, который будет также соответствовать select, textarea и т.д .:

$('.Addable').find(':input').each(function() { ... }); 
+0

Не можете ли вы просто написать '$ ('. Addable: input'). Each (...);'? – 3rgo

+2

Закрыть. '$ ('. Addable: input'). Each (...);' (вам нужно пространство). – jmar777

+0

Упс! Я хотел написать это, но, наверное, мой палец поскользнулся ... – 3rgo

2

Так что вы предлагаете выбрать все дочерние элементы?

Опции:

$('.Addable *').each(function() { 
$('.Addable').find('*').each(function() { 

jQuery('*')docs:

Описание: Выбирает все элементы.
Осторожно: селектор универсальный, или универсальный, чрезвычайно медленный, за исключением случаев, когда он используется сам по себе.

Смежные вопросы