Mam funkcję, która dodaje <div>
element do kliknięcia. Funkcja pobiera tekst klikniętego elementu i przypisuje go do zmiennej o nazwie name
. Ta zmienna jest następnie używana jako<div>
id
dołączony element.
Muszę zobaczyć, czy <div>
id
zname
już istnieje, zanim dołączy element, ale nie wiem jak znaleźć tego.
Oto mój kod:
$("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');
});
Wydaje się to dość proste, ale pojawia się błąd „ Nieoczekiwany koniec pliku podczas wyszukiwania nazwy klasy” . Nie mam pojęcia, co to znaczy.
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>");
}
Co więcej, chcę, aby móc usunąć ten element, jeśli go zamknę, co powinno następnie usunąć div id [name]
dokument, ale.remove()
tego nie robi.
Oto kod do tego:
$(".mini-close").live('click', function(){
$(this).parent().remove();
});
Dodałem .mini-close
do funkcji append jako dziecko, .labels
więc był sposób na zamknięcie dołączonej w <div>
razie potrzeby. Po kliknięciu .mini-close
i ponownym kliknięciu tej samej nazwy li.friends
nadal znajduje się div id [name]
i zwraca pierwszą część mojego if
wyciągu.
źródło
$("div#" + name).css({bottom: '30px'});
jest źle, powinno być$("div#" + name).css('bottom', '30px');
Odpowiedzi:
Możesz użyć
.length
po selektorze, aby sprawdzić, czy pasuje on do jakichkolwiek elementów, takich jak to:Pełna wersja:
Lub wersja nie-jQuery dla tej części (ponieważ jest to identyfikator):
źródło
!$("#"+name).length)
:)===
zamiast piły==
.Odpowiedź Nicka to wbija. Możesz również użyć wartości zwracanej getElementById bezpośrednio jako warunku, zamiast porównywać ją z wartością null (tak czy inaczej działa, ale osobiście uważam ten styl za bardziej czytelny):
źródło
Spróbuj sprawdzić długość selektora, jeśli coś ci zwróci, element musi istnieć, inaczej nie.
Użyj pierwszego warunku if dla id, a drugiego dla klasy.
źródło
źródło
Innym skrótowym sposobem:
źródło
Możesz to sprawdzić za pomocą jquery:
źródło
Najprostszym sposobem jest ..
Jest to również część specyfikacji HTML5: https://www.w3.org/TR/html5/single-page.html#accessing-other-browsing-contexts#named-access-on-the-window-object
źródło
Oto funkcja jQuery, której używam:
Zwróci to wartość logiczną. Jeśli element istnieje, zwraca wartość true. Jeśli chcesz, aby wybrać element, przez nazwę klasy, po prostu zastąpić
#
z.
źródło
Możesz sobie z tym poradzić na różne sposoby,
Celem jest sprawdzenie, czy div istnieje, a następnie wykonanie kodu. Prosty.
Stan: schorzenie:
Uwaga:
Zwróci liczbę za każdym razem, gdy jest wykonywana, więc jeśli nie ma div, da Zero [0], a ponieważ nie mamy 0 może być reprezentowane jako fałsz w pliku binarnym, więc możesz użyć go w instrukcji if. I możesz użyć go jako porównania z liczbą zerową. podczas gdy istnieją trzy podane poniżej oświadczenia
źródło
wstaw identyfikator, który chcesz sprawdzić w jquery is method.
źródło