给出一些简单的JSON:
["62689", "62690", "62697"]
我需要在DOM中选择与这些值相对应的三个元素(基于value
属性)。它们可以是<select>
,<input>
,<option>
或任何其他内容。
我应该使用哪种选择器?
答案 0 :(得分:3)
您可以使用jQuery的Attribute Equals Selector。
选择具有指定属性的元素,其值完全等于某个值。
例如,要选择value
为62689
的元素,您可以使用:
$('[value="62689"]')
要选择所有三个,您可以使用:
$('[value="62689"], [value="62690"], [value="62697"]')
如果您想对这些元素应用某些方法,并且您具有多于或少于这三个值,则可以循环执行JSON响应并相应地应用:
var data = ["62689", "62690", "62697"];
for (var i = 0; i < data.length; i++)
$('[value="' + data[i] + '"]');
或者你可以使用jQuery's map()
method将它们全部拉入数组:
var elements = $('input, select').map(function() {
if ($.inArray(this.value, data) != -1)
return this;
return false;
}).get();
答案 1 :(得分:2)
你需要一个forEach循环,Attribute selectors - CSS声明你的数组
标记
<input type=text value=62689 />
<input type=text value=62690 />
<input type=text value=62697 />
脚本
var selectedArray = ["62689", "62690", "62697"];
selectedArray.forEach(function(e){
$('[value='+e+']').hide();
});
或者,如果你需要更多,那就像这样$('input[value='+e+'],select#hider option[value='+e+']').attr('selected', 'selected');
<input type=text value=62689 />
<input type=text value=62690 />
<input type=text value=62697 />
<select id="hider" value=626973>
<option value=62689>Show</option>
<option>Hide</option>
</select>
脚本
var selectedArray = ["62689", "62690", "62697"];
selectedArray.forEach(function(e){
$('input[value='+e+'],select#hider option[value='+e+']').attr('selected', 'selected');
});
答案 2 :(得分:1)
你可以尝试这样的事情。 :
var array = ["62689", "62690", "62697"];
$("SelectControl").filter(function() {
return jquery.inArray($(this).val(), array) > -1;
})
答案 3 :(得分:0)