Sil*_*vee 4 html javascript css jquery dom
有没有办法通过它的属性值来获取/选择元素,就像使用属性值一样:
$('[attribute="value"]')
Run Code Online (Sandbox Code Playgroud)
例如,我使用jQuery设置一个属性,如下所示:
$('#foo').prop('my-property', 'value');
Run Code Online (Sandbox Code Playgroud)
然后我想找一个有财产的元素,'my-property'它有价值'value'.
不,选择器级别没有任何可以通过属性值选择的内容,只是(如您所知)属性值.
某些属性是属性的反射,这意味着设置属性会设置属性,从而允许您使用属性选择器.例如,input元素的defaultValue属性是其value属性的反映(其value属性不是).
否则,您可以选择您可以使用的内容filter,并将结果列表过滤为仅实际需要的元素.
重新编辑:
例如,我使用jQuery设置一个属性,如下所示:
Run Code Online (Sandbox Code Playgroud)$('#foo').prop('my-property', 'value');
不,没有办法直接选择该属性,你需要像我filter上面的建议:
var list = $("something-that-gets-you-close").filter(function() {
return this["my-property"] == "value";
});
Run Code Online (Sandbox Code Playgroud)
您可以考虑使用data-*属性:
$("#foo").attr("data-my-property", "value");
Run Code Online (Sandbox Code Playgroud)
然后
var list = $("[data-my-property='value']");
Run Code Online (Sandbox Code Playgroud)
选择它(内部引号对于匹配CSS标识符定义的值是可选的).请注意,属性值始终是字符串.
注意:有一种持续的误解,即jQuery的data函数是data-*属性的简单访问器.它不是.它通过jQuery管理与元素关联的数据缓存,jQuery 从属性初始化data-*但与它们断开连接.特别是,.data("my-property", "value")以后不会让你通过[data-my-property=value]选择器找到它.