#jquery
#jquery
Вопрос:
Мне нужно изменить функцию. При выполнении условия элемент добавляется. Мне нужно добавить проверку, чтобы увидеть, был ли этот элемент уже добавлен, потому что его можно добавить только один раз.
function checkBox()
{
if ($("#myBox").find('.myClass').length == 0)
{
$("#myBox").append(
$('<a href="" id="newBox">click</a>')
);
}
}
Ответ №1:
function checkBox() {
if (!$("#myBox").find('.myClass').length) {
$("#myBox").append('<a href="" id="newBox">click</a>');
}
}
Проверьте рабочий пример http://jsfiddle.net/nYbTv /
Комментарии:
1. Это здорово, и я согласен, что это правильный способ добавления, но мне все еще нужно выполнить проверку функции, чтобы увидеть, было ли это уже добавлено или нет. Спасибо.
2. @santa В вашем примере у вас есть
find('.myClass')
. Почему вы ищете MyClass. Вы добавляетеa
кmyClass
.3. Нет, этот класс присваивается перетаскиваемым разделам, которые удаляются в #myBox. Новый элемент добавляется сразу же после предыдущего. MyClass перетаскивается за пределы этой области. Проблема в настоящее время заключается в том, что каждый раз, когда div с . MyClass перетаскивается, как только все они будут удалены из #myBox, добавляется еще один <a href> …
4. @santa Приведенный мной пример делает именно это. Он проверяет существование,
myClass
если MyClass не существует, тоa
добавляется к#myBox
5. ХОРОШО, понял. Вот моя окончательная версия: функция checkBox() { if (!$ («#myBox»).find(‘.MyClass’).length amp;amp; !$(«#myBox»).find(‘a’).length) { $ («#myBox»).append(‘<a href=»» id =»newBox»>click</a>’); } }
Ответ №2:
function checkBox()
{
if ($("#myBox").find('#newBox').length == 0)
{
$("#myBox").append(
$('<a href="" id="newBox">click</a>')
);
}
}
Также обратите внимание, что при передаче сериализованной HTML-строки в append()
вам не нужно переписывать ее с помощью объекта jQuery.
Комментарии:
1. Зачем вы добавляете объект.
<a>
его не нужно оборачивать с помощью jQuery.2. @Hussein Смотрите редактирование. Я просто скопировал пример OP. Кстати, это тоже не не сработает.
3. OP неправильно обертывается
a
с помощью jQuery. Лучше исправить его, чем соглашаться с его ошибкой.4. @Hussein Ну, зависит от того, что вы называете неправильным. В этом нет необходимости, но это не помешает ему работать. Я бы не стал этого делать лично.