Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检索具有组合CSS属性的元素_Javascript_Jquery_Html_Dom - Fatal编程技术网

Javascript 检索具有组合CSS属性的元素

Javascript 检索具有组合CSS属性的元素,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,可能重复: 如何使用jquery检索具有组合或非标准CSS属性的所有元素?例如,如果属性为“emotion”且其值为“happy”,我如何遍历dom并检索具有所述属性的元素,如果需要,检索其值 HTML <div class="book"> </div> Javascript/jquery查询,通过具有情感属性的图书查找图书 ??? 谢谢大家! 无效或未知的CSS属性(非属性)将被浏览器忽略,并且无法访问它们,因为它们未添加到DOM。无效或未知的CSS属性(非属性)

可能重复:

如何使用jquery检索具有组合或非标准CSS属性的所有元素?例如,如果属性为“emotion”且其值为“happy”,我如何遍历dom并检索具有所述属性的元素,如果需要,检索其值

HTML

<div class="book">
</div>
Javascript/jquery查询,通过具有情感属性的图书查找图书

???

谢谢大家!

无效或未知的CSS属性(非属性)将被浏览器忽略,并且无法访问它们,因为它们未添加到DOM。

无效或未知的CSS属性(非属性)将被浏览器忽略,并且无法访问它们,因为它们未添加到DOM中。

您希望使用如下所示的数据属性:

<div class="book" data-emotion="happy"></div>

您希望使用数据属性,如下所示:

<div class="book" data-emotion="happy"></div>

可以在DOM中获取具有任意属性的元素:

​<div emotion="happy">:)</div>​​​​​​​​​​​​​​​​​​​​​​​​​​​
...
console.log(​$('div[emotion="happy"]').text()​​​​​​​​​​​​​​​​​​​​​);​
// prints ":)"
​:)​​​​​​​​​​​​​​​​​​​​​​​​​​​
...
console.log(​$('div[emotion=“happy”]”)text()​​​​​​​​​​​​​​​​​​​​​);​
//印刷品“:”
。。。但最好是:

​<div data-emotion="happy">:)</div>​​​​​​​​​​​​​​​​​​​​​​​​​​​
...
console.log(​$('div[data-emotion="happy"]').text()​​​​​​​​​​​​​​​​​​​​​);​
// prints ":)"
​:)​​​​​​​​​​​​​​​​​​​​​​​​​​​
...
console.log(​$('div[data emotion=“happy”]”)text()​​​​​​​​​​​​​​​​​​​​​);​
//印刷品“:”
因为使用


它也不会被解析为CSS规则,您为什么要这样做?

您可以在DOM中获得具有任意属性的元素:

​<div emotion="happy">:)</div>​​​​​​​​​​​​​​​​​​​​​​​​​​​
...
console.log(​$('div[emotion="happy"]').text()​​​​​​​​​​​​​​​​​​​​​);​
// prints ":)"
​:)​​​​​​​​​​​​​​​​​​​​​​​​​​​
...
console.log(​$('div[emotion=“happy”]”)text()​​​​​​​​​​​​​​​​​​​​​);​
//印刷品“:”
。。。但最好是:

​<div data-emotion="happy">:)</div>​​​​​​​​​​​​​​​​​​​​​​​​​​​
...
console.log(​$('div[data-emotion="happy"]').text()​​​​​​​​​​​​​​​​​​​​​);​
// prints ":)"
​:)​​​​​​​​​​​​​​​​​​​​​​​​​​​
...
console.log(​$('div[data emotion=“happy”]”)text()​​​​​​​​​​​​​​​​​​​​​);​
//印刷品“:”
因为使用


它也不会被解析为CSS规则,您为什么要这样做?

尽管我认为您可以/不应该基于CSS属性搜索元素:

休息我希望它对事业有所帮助
:)

请试试这个:

var x = $('div').filter(function(){ return this.style.some_prop == 'whatever' });
                                                        ^------- ------ ^
注意:如果要搜索属性,请参见此处

$(parentElement).find('*[someAttributeName]').each(function(index){
    doSomething(this);
});

尽管我认为您可以/不应该基于css属性搜索元素:

休息我希望它对事业有所帮助
:)

请试试这个:

var x = $('div').filter(function(){ return this.style.some_prop == 'whatever' });
                                                        ^------- ------ ^
注意:如果要搜索属性,请参见此处

$(parentElement).find('*[someAttributeName]').each(function(index){
    doSomething(this);
});


有人向我提到的一个解决方法是使用CSS解析器,例如:

有人向我提到的一个解决方法是使用CSS解析器,例如:

如果你使用HTML5,你可以使用
数据
属性:为什么你不想只使用类?我会使用
class=“book emotion happy”
,然后可以使用
.className
访问/更改它。如果使用HTML5,可以使用
数据
属性:为什么不想只使用一个类?我会使用
class=“book emotion happy”
,然后可以使用
.className
访问/更改它。是的;这就是为什么要创建一个非标准的CSS属性?+1和重复提及
:)
@Tats\u innit lol,谢谢你bruv
:)
是的;这就是为什么要创建一个非标准的CSS属性?+1和重复提及
:)
@Tats\u innit lol,谢谢你bruv
:)
我正在尝试用JavaScript编写一些支持未来CSSY的东西,无论如何,你不应该根据CSS类的属性进行选择。通过类本身选择。我正在尝试用JavaScript编写一些支持未来CSSY的东西。无论如何,你不应该通过CSS类的属性来选择。由班级自己选择。@zallarak brilliant,你投了反对票是因为?什么不起作用?你能解释一下吗?请
:)
@Raminson lol谢谢bruv,lol我会投票给你的,等等,
:)
@Tats\u是的,它不起作用,你和其他人的例子也不起作用,直到我发布了一个JSFIDLE[现在被删除]。“我不是想和你们争论,我只是想弄明白。”扎拉拉克·布莱恩特,你们投了反对票,因为?什么不起作用?你能解释一下吗?请
:)
@Raminson lol谢谢bruv,lol我会投票给你的,等等,
:)
@Tats\u是的,它不起作用,你和其他人的例子也不起作用,直到我发布了一个JSFIDLE[现在被删除]。不是想和你们争论,我只是想弄明白。嘿,好链接<代码>:)+1祝你好运!嘿,好链接<代码>:)+1祝你好运!