HTML
<input name="single">
<input name="multi[]">
<input name="multi[]">
<input name="multi_keys[my]">
<input name="multi_keys[key]">
jQuery
var match_single = $('[name="single"]');
var match_multi = $('[name="multi"]'); // No match
var match_multi_keys = $('[name="multi_keys"]'); // No match
console.log(match_single.length);
console.log(match_multi.length);
console.log(match_multi_keys.length);
它只会匹配match_single
,因为其他选择器不正确。
如何使它们与表单字段数组匹配?
我可以这样做:
var match_multi = $('[name="multi[]"]');
但是如果里面有钥匙并且他们不知道我怎么能匹配?我想这样写:
$('[name="multi_keys*');
答案 0 :(得分:5)
您可以使用与属性开头匹配的^=
:
$('[name^="multi"]')
请注意,这将与 name="multi[]"
和name="multi_keys[]"
匹配。如果您想单独选择multi[]
和multi_keys[]
,只需将方括号添加到该选择器即可:
$('[name^="multi["]')
...和
$('[name^="multi_keys["]')
[att^=val]
表示具有att属性的元素,其值以前缀“val”开头。如果“val”是空字符串,则选择器不代表任何内容。
答案 1 :(得分:0)
使用*
之前的=
$('[name*="multi"]');
var match_single = $('[name="single"]');
var match_multi = $('[name*="multi"]'); // No match
var match_multi_keys = $('[name*="multi_keys"]'); // No match
console.log(match_single.length);
console.log(match_multi.length);
console.log(match_multi_keys.length);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="single">
<input name="multi[]">
<input name="multi[]">
<input name="multi_keys[my]">
<input name="multi_keys[key]">
&#13;
答案 2 :(得分:0)
您可以通过匹配输入名称的前缀来查询这些输入,例如$('[name^=multi_keys]')
,这样它就会选择“name
以multi_keys
开头的元素。但这很糟糕。