target input by type and name (selector)

后端 未结 3 1430
野性不改
野性不改 2020-12-12 12:43

I need to change some checkbox inputs to hidden inputs for some but not all inputs on a page.



        
相关标签:
3条回答
  • 2020-12-12 13:11
    input[type='checkbox', name='ProductCode']
    

    That's the CSS way and I'm almost sure it will work in jQuery.

    0 讨论(0)
  • 2020-12-12 13:25

    You can combine attribute selectors this way:

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

    so that an element has to satisfy both conditions. Of course you can use this for more than two. Also, don't do [type=checkbox]. jQuery has a selector for that, namely :checkbox so the end result is:

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

    Attribute selectors are slow however so the recommended approach is to use ID and class selectors where possible. You could change your markup to:

    <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">
    

    allowing you to use the much faster selector of:

    $("input.ProductCode")...
    
    0 讨论(0)
  • 2020-12-12 13:27

    You want a multiple attribute selector

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

    or

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

    It would be better to use a CSS class to identify those that you want to select however as a lot of the modern browsers implement the document.getElementsByClassName method which will be used to select elements and be much faster than selecting by the name attribute

    0 讨论(0)
提交回复
热议问题