Javascript 在数据属性中按对象值查找元素
我有以下情况。 具有输入,该输入在数据属性中具有对象:Javascript 在数据属性中按对象值查找元素,javascript,jquery,html,Javascript,Jquery,Html,我有以下情况。 具有输入,该输入在数据属性中具有对象: <input type='text' data-testname='{"repeat" : "{"group_id" : "1"}"}' value='value 1' /> <input type='text' data-testname='{"repeat" : "{"group_id" : "1"}"}' value='value 2' /> <input type='text' data-testnam
<input type='text' data-testname='{"repeat" : "{"group_id" : "1"}"}' value='value 1' />
<input type='text' data-testname='{"repeat" : "{"group_id" : "1"}"}' value='value 2' />
<input type='text' data-testname='{"repeat" : "{"group_id" : "1"}"}' value='value 3' />
是否有任何不带循环的选择器来查找文档中的所有元素,而不添加新的数据属性(data-group_id='1'),其中:
testname>repeat>group_id=1
是的,我知道的另一个属性是解决方案,但仍然。。。。。有这样的路吗 是的,您可以使用属性值选择器
input[data-testname='{"repeat" : "{"group_id" : "1"}"}']
input[data testname='{“repeat”:“{”group_id:“1”}']{
颜色:绿色;
字体大小:粗体;
}
jQuery使用
css
选择器。对于数据
属性的json
编码数据没有选择器。但是,您可以尝试这样的方法
$('input[data-testname=\'{"repeat" : "{"group_id" : "1"}"}"\']').
我建议您使用以下代码以获得更清晰的代码:
query = $('input').filter(function() {
var json = JSON.parse($(this).data('testname'));
return json.repeat.group_id == 1;
});
// Do whatever you want with 'query' jQuery object.
尝试使用
filter()
var el=$('[data testname]')。过滤器(函数(){
var data=$(this.attr('data-testname');
if(JSON.parse(data.repeat.group_id==1)
归还这个;
});
console.log(el[0])
为什么不简单地创建一个名为group_id的属性呢?这并不是您问题的答案,但是否可以添加另一个
数据-
属性,如数据组id=“1”
?是的,我知道的另一个属性是解决方案,但仍然。。。。。有这样的方法吗?最好使用try…catch
包装JSON.parse()
。感谢您的帮助,css的解决方案非常完美:)“madalin ivascu”-方法更适合我。谢谢。
<input type='text' data-testname='{"repeat" : {"group_id" : 1}}' value='value 1' /><input type='text' data-testname='{"repeat" : {"group_id" : 1}}' value='value 1' />
var el = $('[data-testname]').filter(function() {
var data = $(this).attr('data-testname');
if(JSON.parse(data).repeat.group_id == 1)
return this;
});
console.log(el[0])