В моем коде у меня есть следующий 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>');
});
$('#listItem:not(:has(.greenCheckMark))')
.append('<span class="greenCheckMark"></span>');
$('.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
проверит весь документ на наличие зеленых флажков).
Вы могли бы просто поискать его?
($('.greenCheckMark', '#listItem').length > 0) ? /* found green check mark in #listItem */ : /* not found */ ;
EDIT: Исправлена 'несвязанность' с вопросом.
Согласно вашим требованиям, это добавит
только в том случае, если #listItem
еще не содержит
с классом
из greenCheckMark
.
var listItem = $('#listItem');
if ( !listItem.find('span.greenCheckMark')[0] ) {
listItem.append('<span class="greenCheckMark"></span>');
}