2012-05-16 78 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 s表示改名完美,螺母,現在我需要改變所有元素不僅input就像select的I認爲將第一行替換爲:

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

但是,這不起作用,那麼您的建議是選擇所有子元素?

+1

這個是什麼的HTML?當你說「全部」時,範圍是什麼?所有的後代? – Joseph

+0

@約瑟夫。所有===所有:),只是他可能並不真正想要他們**全**。 – gdoron

+0

請使用駱駝案件的變量。 – gdoron

回答

5

對於所有後代元素,您可以執行@gdoron建議的操作。如果您正在尋找一般所有表單域,不只是input的,你可以使用:input選擇,這也將匹配selecttextarea等:

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

你就不能寫'$( '可加成:輸入。')各(...);'? – 3rgo

+2

關閉。 '$('。Addable:input')。each(...);'(你需要空間)。 – jmar777

+0

哎呀!我的意思是寫,但我猜我的手指滑了下來...... – 3rgo

2

那麼,什麼是您的建議,選擇所有子元素?

選項:

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

jQuery('*')docs

說明:選擇所有元素。
注意:所有或通用,選擇是極其緩慢的,在使用時其本身除了。