我想运行以下jQuery
$('.existing-element').after('<div class="new-element"></div>');
但是只有当元素“新元素”还不存在的时候。换句话说,我试图阻止上面的jQuery多次添加该元素。
我希望在我的标题中添加元素(在我的商业徽标旁边)
发布于 2019-09-03 17:23:09
要检查新元素是否已经存在,请检查length
属性:
if( !$('div.new-element').length ) $('.existing-element').after('<div class="new-element"></div>');
如果div已经存在,则长度将大于零。
发布于 2019-09-03 17:24:47
如果只有一个.existing-element
,您可以通过next
和hasClass
测试它是否已经拥有了.new-element
。
var $el = $(".existing-element");
if (!$el.next().hasClass("new-element")) {
$el.after('<div class="new-element"></div>');
}
如果文档中有几个.exiting-element
,则需要使用each
或filter
。用each
$(".existing-element").each(function() {
var $el = $(this);
if (!$el.next().hasClass("new-element")) {
$el.after('<div class="new-element"></div>');
}
});
用filter
$(".existing-element").filter(functino() {
return !$(this).next().hasClass("new-element");
}).after('<div class="new-element"></div>');
关于.next().hasClass("new-element")
的注意:即使没有下一个元素,它也能正常工作。在这种情况下,.next()
将返回一个空的jQuery集,hasClass
将始终返回false。
https://stackoverflow.com/questions/57776203
复制相似问题