我想检查我的标题<h3>
是否有highlight
类,所以我创建了How to check if element contains specific class attribute,但我不确定如何将其与我的用例相符,因为它& #39;不是包含类的<h3>
,而是包含其中的范围:
我试着做这个代码:
$('.liContainer div h3').each(function(i, obj) {
var contains = false;
String classes = obj.getAttribute("class");
for (String c : classes.split(" ")) {
if (c.equals("highlight")) {
contains = true;
}
}
if(contains){
obj.classList.remove("highlight");
}
});
但我在实际代码中遇到错误:
imports/ui/layout.js:42:13: Unexpected token (42:13)
并且它是String classes = obj.getAttribute("class");
有人可以帮助我让它有效吗? [编辑]在你的回答的帮助下我现在在这里:
'click .liContainer div h3': function(e){
if ( $(e.target).find("span").is(".highlight") ) {
console.log("it was highlighted");
$(e.target).find("span").removeClass('highlight');
}
},
它的确有效,谢谢大家
答案 0 :(得分:2)
I hope it will help you
$('.liContainer div h3').each(function(i, obj) {
if ( $(this).find("span").is(".highlight") ) {
// do something
}
});
**can you just help me to do the action only on the clicked h3?**
If `click` action:
$('.liContainer div h3').click(function() {
if ( $(this).find("span").is(".highlight") ) {
// do something
}
});
I use your code, and change the content of the `each` loop.
You loop each `<h3>` and check if child `<span>` has class `.highlight`, then you do something...
The above Code can also be written as follows:
$('.liContainer div h3').click(function() {
if ( $(this).find("span.highlight") ) {
// do something
}
});
Hope this works fine.
答案 1 :(得分:1)
$('h3').filter(function(){
return $(this).find('span.highlight').length != 0;
}) // do something with it
答案 2 :(得分:1)
一种粗略的方式来了解您是否不知道有子选择器
$('#nameMachine *').hasClass('yourClass'); // either true or false
答案 3 :(得分:1)
Try using `has` selector as given below code :
$('.liContainer div h3:has(span.highlight)').each(function(){
// code here
});
答案 4 :(得分:1)
由于您使用的是jquery,这个简单的解决方案如何:
$('.liContainer div h3 .highlight').removeClass('highlight');
答案 5 :(得分:1)
您可以尝试以下方式:
if( $("h3", "#nameMachine").has(".highlight") ) {
// do something
}
或更具体的版本:
if( $("> h3", "#nameMachine").has("span.highlight") ) {
// do something
}
答案 6 :(得分:1)
$('span.highlight','.liContainer div h3').removeClass('highlight')
请注意,第二个css选择器用于确定搜索第一个css选择器的范围。
答案 7 :(得分:1)
find()
将搜索所有子元素。因此,如果有想要的课程,其长度将为1 else length is 0
。
$('.liContainer div h3').each(function(i, obj) {
var hasClass = $(obj).find(".highlight");
if (hasClass.length) {
hasClass[0].classList.remove("highlight");
}
});
答案 8 :(得分:0)
这样做。 hasClass文档在这里
$("#nameMachine h3").hasClass("highlight")
答案 9 :(得分:-1)
if ($('#parent').find('#child').length) {
}