目标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中工作。