Javascript 如果div中存在元素,则Jquery添加类
如果Javascript 如果div中存在元素,则Jquery添加类,javascript,jquery,html,css,Javascript,Jquery,Html,Css,如果 艾哈迈德先生 分机13417 417/323房间 艾罗先生 分机13328 328/323房间 艾奥萨先生 分机13419 419/323房间 您可以执行以下操作: $('.staff-picture a').closest('.staff-container').addClass('pointer'); 我希望代码中的逻辑是显而易见的。试试这个: var $selector = $('.staff-container'); if($selector.find('.staff-pi
艾哈迈德先生
分机13417
417/323房间
艾罗先生
分机13328
328/323房间
艾奥萨先生
分机13419
419/323房间
您可以执行以下操作:
$('.staff-picture a').closest('.staff-container').addClass('pointer');
我希望代码中的逻辑是显而易见的。试试这个:
var $selector = $('.staff-container');
if($selector.find('.staff-picture').has('a')) {
$selector.addClass('pointer');
}
$.closest()
向上而不是向下遍历树,因此您找不到任何东西 我喜欢用“反向”逻辑来处理这些类型的问题:
可能有一种方法可以“选择”您的staff容器
父容器,但是如果DOM结构没有改变,这将非常有效
首先选择所有的a链接,然后只应用那些使用jQuery强大的选择代码的链接。它不依赖于if语句的测试。我将首先遍历
.staff容器
div,然后使用一个条件,使用this
对象作为上下文来确定哪些容器具有标记:
//Goes through all the .staff-picture divs
$('.staff-container').each(function(){
//If the a tag exists within the current .staff-picture (returned object isn't undefined)
if($('a', this).html() != undefined){
//Add the class if a exists
$(this).addClass('pointer');
}
});
编辑
对不起,我指的是员工容器,不是员工照片。但是,两者都可以
第二版
另外,如果您想知道原始方法为什么不起作用,那是因为您使用的条件(第一个if
)没有实例化这个对象。也就是说,此
在您的函数中不存在。您确定需要此!重要信息
?如果你的CSS代码管理得很好,你很少需要它。哦,如果是这样的话,那么你可以修改我下面的答案如下:$('.staff picture a').nest('staff-container').addClass('pointer);如果我相信的话,你甚至不需要这个。您只需执行$('.staff container').find('.staff picture').has('a').addClass('pointer')@ryanulit即可将类添加到staff picture
而不是staff container
在我的情况下,与这里的问题非常类似,这非常有效!必须从div中挖掘
标记,并使用行高属性设置自定义类,以获得更固定的按钮视图。
$('.staff-picture a').closest('.staff-container').addClass('pointer');
var $selector = $('.staff-container');
if($selector.find('.staff-picture').has('a')) {
$selector.addClass('pointer');
}
$('.staff-picture a').parent().parent().parent().addClass('pointer);
//Goes through all the .staff-picture divs
$('.staff-container').each(function(){
//If the a tag exists within the current .staff-picture (returned object isn't undefined)
if($('a', this).html() != undefined){
//Add the class if a exists
$(this).addClass('pointer');
}
});