У меня есть функция, которая добавляет <div>
элемент к щелчку. Функция получает текст выбранного элемента и присваивает его переменной с именем name
. Эта переменная затем используется в <div>
id
качестве добавленного элемента.
Мне нужно посмотреть, существует ли уже <div>
id
с, name
прежде чем я добавлю элемент, но я не знаю, как это найти.
Вот мой код:
$("li.friend").live('click', function() {
name = $(this).text();
// if-statement checking for existence of <div> should go here
// If <div> does not exist, then append element
$("div#chatbar").append("<div class='labels'><div id='" + name + "' style='display:none;'></div>" + name + "</div>");
// Else
alert('this record already exists');
});
Это кажется довольно простым, но я получаю сообщение об ошибке « Неожиданный конец файла при поиске имени класса» . Я понятия не имею, что это значит.
if (document.getElementById(name)) {
$("div#" + name).css({bottom: '30px'});
} else {
$("div#page-content div#chatbar").append("<div class='labels'>" + name + "</div><div id='" + name + "'></div>");
}
Более того, я хочу иметь возможность удалить этот элемент, если я закрою его, который затем должен удалить div id [name]
из документа, но .remove()
не сделает этого.
Вот код для этого:
$(".mini-close").live('click', function(){
$(this).parent().remove();
});
Я добавил .mini-close
к функции добавления в качестве дочернего элемента, .labels
чтобы был способ закрыть добавленный файл, <div>
если это необходимо. После щелчка .mini-close
и попытки щелкнуть снова тем же именем, li.friends
оно все равно находит div id [name]
и возвращает первую часть моего if
утверждения.
источник
$("div#" + name).css({bottom: '30px'});
неправильно, это должно быть$("div#" + name).css('bottom', '30px');
Ответы:
Вы можете использовать
.length
после селектора, чтобы увидеть, соответствует ли он каким-либо элементам, например так:Полная версия:
Или не-jQuery-версия для этой части (так как это идентификатор):
источник
!$("#"+name).length)
:)===
а не увидел==
.Ответ Ника заколачивает это. Вы также можете использовать возвращаемое значение getElementById непосредственно в качестве условия, а не сравнивать его со значением null (в любом случае это работает, но лично я нахожу этот стиль немного более читабельным):
источник
Попробуйте проверить длину селектора, если он возвращает вам что-то, элемент должен существовать, иначе нет.
Используйте первое условие if для id и второе для класса.
источник
источник
Еще один сокращенный способ:
источник
Вы можете проверить с помощью jquery просто так:
источник
Самый простой способ это ..
Это также является частью спецификаций HTML5: https://www.w3.org/TR/html5/single-page.html#accessing-other-browsing-contexts#named-access-on-the-window-object
источник
Вот функция jQuery, которую я использую:
Это вернет логическое значение. Если элемент существует, он возвращает true. Если вы хотите выбрать элемент по имени класса, просто замените
#
на.
источник
Вы можете справиться с этим по-разному,
Задача состоит в том, чтобы проверить, существует ли div, затем выполнить код. Просто.
Состояние:
Примечание:
Это будет возвращать число каждый раз, когда оно будет выполнено, поэтому, если div не существует, он выдаст Zero [0], и, поскольку мы no 0, можем быть представлены как ложные в двоичном, так что вы можете использовать их в операторе if. И вы можете использовать его для сравнения с номерами нет. в то время как есть три утверждения, приведенные ниже
источник
введите идентификатор, который вы хотите проверить в JQuery метод.
источник