目标input按types和名称(select器)

我需要改变一些checkboxinput隐藏的input,而不是一个页面上的所有input。

<input type="checkbox" name="ProductCode"value="396P4"> <input type="checkbox" name="ProductCode"value="401P4"> <input type="checkbox" name="ProductCode"value="F460129"> 

下面的jQuery代码只select按types的input,导致所有checkbox更改为隐藏的input有没有办法检查input=“checkbox”和名称=“ProductCode”的types作为select器,所以我可以专门针对这些我想改变?

 $("input[type='checkbox']").each(function(){ var name = $(this).attr('name'); // grab name of original var value = $(this).attr('value'); // grab value of original var html = '<input type="hidden" name="'+name+'" value="'+value+'" />'; $(this).after(html).remove(); // add new, then remove original input }); 

你想要一个多属性select器

 $("input[type='checkbox'][name='ProductCode']").each(function(){ ... 

要么

 $("input:checkbox[name='ProductCode']").each(function(){ ... 

最好使用一个CSS类来标识那些你想要select的类,但是现代浏览器很多实现了document.getElementsByClassName方法,这个方法将被用来select元素,比用name属性select要快得多

您可以通过以下方式组合属性select器:

 $("[attr1=val][attr2=val]")... 

所以一个元素必须满足这两个条件。 当然,你可以使用这两个以上。 另外,不要[type=checkbox] 。 jQuery有一个select器,即:checkbox所以最终的结果是:

 $("input:checkbox[name=ProductCode]")... 

属性select器很慢,所以推荐的方法是在可能的情况下使用ID和类select器。 您可以将您的标记更改为:

 <input type="checkbox" class="ProductCode" name="ProductCode"value="396P4"> <input type="checkbox" class="ProductCode" name="ProductCode"value="401P4"> <input type="checkbox" class="ProductCode" name="ProductCode"value="F460129"> 

允许您使用更快的select器:

 $("input.ProductCode")... 
 input[type='checkbox', name='ProductCode'] 

这是CSS的方式,我几乎可以肯定它会在jQuery中工作。