通过javascript向特定元素添加一个类,不要重复
这是示例代码,解释我想要的:通过javascript向特定元素添加一个类,不要重复,javascript,jquery,html,css,Javascript,Jquery,Html,Css,这是示例代码,解释我想要的: <div id="someId"> <div class="someClass"></div> <div class="targetClass"></div> </div> <div id="someId"> <div class="someClass"></div> <div class="targetClass"></div> &l
<div id="someId">
<div class="someClass"></div>
<div class="targetClass"></div>
</div>
<div id="someId">
<div class="someClass"></div>
<div class="targetClass"></div>
</div>
<div id="someId">
<div class="someClass"></div>
</div>
结果是在第3个div
中添加一个TargetClass,并在第一个和第二个div
中重复相同的类
问题是我如何在最后一个
div
中添加类,而不在另一个div
中重复它 根据您的代码判断,您希望新div作为.someClass
div的兄弟,而不是它的子级
只需更换这一行
$(".someClass").append($newDiv);
借
$(“div[id]:not(:has(.targetClass)))).append($newDiv)//将新div附加到所有没有targetclass子元素的div
var$newDiv=$(“”).addClass(“targetClass”);
$($div[id]:not(:has(.targetClass))))。追加($newDiv);
使用.last()将选择要搜索的最后一个元素
jQuery(".someClass").last().append($newDiv);
我假设父div具有唯一的ID,因为如果someId是应用于多个元素的实际ID,那么someId无效,这会使标记无效 使用
.last().parent()
将元素作为同级元素放置,因为它们共享同一父元素:
var$newDiv=$(“”)
.addClass(“targetClass”).html(“动态目标元素”)
$(“.someClass”).last().parent().append($newDiv)代码>
div{边框:实心1px红色;边距:10px 0;}
div div{border:none;}
一些
目标
一些
目标
在此之后,应添加以下元素
如果要将带有targetClass的div添加到带有someId的div中,如果它不存在,可以使用find()
函数:
if($('#someId').find('.someClass').length == 0) {
var $newDiv = $("<div/>")
.addClass("targetClass")
$("#someId").append($newDiv);
}
if($('#someId').find('.someClass').length==0){
变量$newDiv=$(“”)
.addClass(“targetClass”)
$(“#someId”).append($newDiv);
}
元素的ID必须为unique@mag我假设someId
在这里只是一个占位符,在您的实际上下文中它将是唯一的。如果我有更多的类而不是一个类,我会做什么?@MAG您是指更多没有targetClass的类?谢谢您的帮助,但不起作用没有出现effect@MAG你只会看到如果元素有一些值,如果我有一个或多个类而不是一个类,那么效果如何?我做什么?我不明白你的意思。你能再来一次吗?@MAG检查添加的代码段。如果我有更多的类而不是一个类,我会做什么?
jQuery(".someClass").last().append($newDiv);
if($('#someId').find('.someClass').length == 0) {
var $newDiv = $("<div/>")
.addClass("targetClass")
$("#someId").append($newDiv);
}