jQuery:检测元素是否存在

发布于 2024-09-12 04:57:44 字数 382 浏览 7 评论 0原文

在我的代码中,当用户单击特定元素时,我将以下 html 附加到列表项。

<span class="greenCheckMark"></span>

使用 jQuery,我如何检测该元素是否存在,如果存在,则不添加另一个绿色复选标记?

$('.clickedElement').live('click',function(){
//does the green check mark exist? if so then do nothing, else 
$('#listItem).append('<span class="greenCheckMark"></span>');
});

In my code I have the following html that gets appended to a List Item when the user clicks on a specific element.

<span class="greenCheckMark"></span>

Using jQuery, how would I detect if the element existed, and if so, not add another green checkmark?

$('.clickedElement').live('click',function(){
//does the green check mark exist? if so then do nothing, else 
$('#listItem).append('<span class="greenCheckMark"></span>');
});

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

装纯掩盖桑 2024-09-19 04:57:44

使用 not

$('#listItem:not(:has(.greenCheckMark))')
    .append('<span class="greenCheckMark"></span>');

Use not and has

$('#listItem:not(:has(.greenCheckMark))')
    .append('<span class="greenCheckMark"></span>');
等待圉鍢 2024-09-19 04:57:44

你可以随便找找吗?

($('.greenCheckMark', '#listItem').length > 0) ? /* found green check mark in #listItem */ : /* not found */ ;

编辑:修复了问题的“不相关性”。

You could just look for it?

($('.greenCheckMark', '#listItem').length > 0) ? /* found green check mark in #listItem */ : /* not found */ ;

EDIT: Fixed 'un-relatedness' to question.

智商已欠费 2024-09-19 04:57:44

根据您的要求,这只会在 #listItem 尚未包含 的情况下附加 具有 greenCheckMarkclass

var listItem = $('#listItem');
if ( !listItem.find('span.greenCheckMark')[0] ) {
    listItem.append('<span class="greenCheckMark"></span>');
}

As per your requirements, this will only append the <span> in the case that #listItem does not already contain a <span> with a class of greenCheckMark.

var listItem = $('#listItem');
if ( !listItem.find('span.greenCheckMark')[0] ) {
    listItem.append('<span class="greenCheckMark"></span>');
}
一人独醉 2024-09-19 04:57:44
$('.clickedElement').live('click',function(){ 
    //does the green check mark exist? if so then do nothing, else
    if($("#listItem span.greenCheckMark").length != 0)
    {
        $('#listItem').append('<span class="greenCheckMark"></span>');
    } 
}); 

好的,经过一些编辑后,这应该就是您要寻找的内容。

$("#listItem span.greenCheckMark").length != 0 将返回一个 JQuery 对象数组,如果该区域的长度不等于 0,则它存在。确保您专门检查要检查的位置($("span.greenCheckMark").length 将检查整个文档中的绿色复选标记)。

$('.clickedElement').live('click',function(){ 
    //does the green check mark exist? if so then do nothing, else
    if($("#listItem span.greenCheckMark").length != 0)
    {
        $('#listItem').append('<span class="greenCheckMark"></span>');
    } 
}); 

Okay, after a few edits, this should be what you're looking for.

$("#listItem span.greenCheckMark").length != 0 will return an array of JQuery objects, if that area has a length not equal to 0 then it exists. Make sure that you are checking specifically for where you want to check, ($("span.greenCheckMark").length will check the entire document for green check marks).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文