jQuery selector for inputs with square brackets in the name attribute

后端 未结 5 1156
醉梦人生
醉梦人生 2020-11-22 06:18

I\'m trying to select this element which has square brackets in the name attribute:




        
相关标签:
5条回答
  • 2020-11-22 06:40

    The attribute selector syntax is [name=value] where name is the attribute name and value is the attribute value.

    So if you want to select all input elements with the attribute name having the value inputName[]:

    $('input[name="inputName[]"]')
    

    And if you want to check for two attributes (here: name and value):

    $('input[name="inputName[]"][value=someValue]')
    
    0 讨论(0)
  • 2020-11-22 06:57

    If the selector is contained within a variable, the code below may be helpful:

    selector_name = $this.attr('name');
    //selector_name = users[0][first:name]
    
    escaped_selector_name = selector_name.replace(/(:|\.|\[|\])/g,'\\$1');
    //escaped_selector_name = users\\[0\\]\\[first\\:name\\]
    

    In this case we prefix all special characters with double backslash.

    0 讨论(0)
  • 2020-11-22 06:58

    Per the jQuery documentation, try this:

    $('input[inputName\\[\\]=someValue]')
    

    [EDIT] However, I'm not sure that's the right syntax for your selector. You probably want:

    $('input[name="inputName[]"][value="someValue"]')
    
    0 讨论(0)
  • 2020-11-22 07:04

    You can use backslash to quote "funny" characters in your jQuery selectors:

    $('#input\\[23\\]')
    

    For attribute values, you can use quotes:

    $('input[name="weirdName[23]"]')
    

    Now, I'm a little confused by your example; what exactly does your HTML look like? Where does the string "inputName" show up, in particular?

    edit fixed bogosity; thanks @Dancrumb

    0 讨论(0)
  • 2020-11-22 07:04

    Just separate it with different quotes:

    <input name="myName[1][data]" value="myValue">
    

    JQuery:

    var value = $('input[name="myName[1][data]"]').val();
    
    0 讨论(0)
提交回复
热议问题