Javascript jquery无法获取元素的类名
我有下面的代码,但是由于某些原因jQuery没有选择元素的类名,我知道如果元素有多个类调用Javascript jquery无法获取元素的类名,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我有下面的代码,但是由于某些原因jQuery没有选择元素的类名,我知道如果元素有多个类调用,attr('class')将不会返回它们,但是.hasClass('class-name')应该能够识别元素是否有类名。 我的问题是jquery返回未定义的类名(我是从注释行中得到的)。 如何使#parent中没有class的所有其他div子级具有黄色背景 $(文档).ready(函数() { var j=$('#parent>div').size(); 对于(var i=0;i,children()
,attr('class')
将不会返回它们,但是.hasClass('class-name')
应该能够识别元素是否有类名。
我的问题是jquery返回未定义的类名(我是从注释行中得到的)。 如何使
#parent
中没有class的所有其他div子级具有黄色背景
$(文档).ready(函数()
{
var j=$('#parent>div').size();
对于(var i=0;i,children()
调用是多余的,因为div
元素都没有任何子元素。删除该子元素,代码就会工作:
$(文档).ready(函数(){
var j=$('#parent>div').size();
对于(变量i=0;idiv').eq(i).attr('class'));
if(!$('#parent>div').eq(i).hasClass('the-one')){
$('#parent>div').eq(i).css('background','yellow'))
}
}
});
一
二
三
四
问题是$(“#parent>div”)
返回#parent
的子级,因此再次调用children()
不会返回任何元素
您可以使用简单的jQuery选择器,而不是像
$(文档).ready(函数(){
$(“#parent>div:not(.one)”.css('background','yellow'))
});
一
二
三
四
为什么不试试更简单的方法呢
$("#parent > div").not(".the-one").css("background", "yellow");
$(文档).ready(函数(){
$('#parent>div')。每个(函数(){
var classtheone=$(this.hasClass('the-one');
如果(!classtheone){
$(this.css('background-color','yellow'))
}
})
});
一
二
三
四
试试这个
$("#parent div").each(function(){
var me=$(this);
if(me.hasClass("the-one")) { me.css({"background-color" : "yellow"}); }
})
正如其他答案中所述,您的children()
调用是问题所在,我建议对each()
使用以下解决方案,因为它更简单
$(文档).ready(函数()
{
$('#父div')。每个(函数(i){
if(!$(this).hasClass('the-one')){
$(this.css('background','yellow');
}
});
});
一
二
三
四
“我知道如果元素有多个类调用,attr('class')将不会返回它们”-这是错误的。attr('class')
将返回class属性,该属性包含一个包含所有类名的字符串,用空格分隔。您已经阅读了children选择器
不使用.children();将选择结果存储在var$divs=$(“#parent>div”)中也是一个好主意
,然后重新使用它,而不是每次都查询。@YeldarKurmangaliyev谢谢,当时正在编写一个编辑,以便在单个选择器上使用每个
,提供一个改进的版本。谢谢,特别是关于使用each()的建议。不使用css的原因:不,它与ie不兼容