Mam kilka elementów na stronie HTML, które mają tę samą klasę - ale są to różne typy elementów. Chcę znaleźć nazwę znacznika elementu, kiedy nad nimi zapętlam - ale .attr nie przyjmuje „znacznika” ani „zmiennej”.
Oto co mam na myśli. Rozważ te elementy na stronie:
<h1 class="rnd">First</h1>
<h2 id="foo" class="rnd">Second</h2>
<h3 class="rnd">Third</h3>
<h4 id="bar" class="rnd">Fourth</h4>
Teraz chcę uruchomić coś takiego, aby upewnić się, że wszystkie moje elementy mają identyfikator, jeśli nie został on jeszcze zdefiniowany:
$(function() {
$(".rnd").each(function(i) {
var id = $(this).attr("id");
if (id === undefined || id.length === 0) {
// this is the line that's giving me problems.
// .attr("tag") returns undefined
$(this).attr("id", "rnd" + $(this).attr("tag") + "_" + i.toString());
}
});
});
W rezultacie chciałbym, aby elementy H2 i H4 miały wtedy identyfikator
rndh2_1
rndh4_3
odpowiednio.
Jakieś pomysły, jak mogę znaleźć nazwę tagu elementu reprezentowanego przez „this”?
javascript
jquery
BigPigVT
źródło
źródło
Odpowiedzi:
Powinien być
źródło
Możesz spróbować tego:
Zobacz dokumentację, aby uzyskać więcej informacji na temat is ().
źródło
nodeName
zwraca ciąg, który w zależności od przeglądarki jest pisany wielkimi literami lub nie.is('*')
od lat. Prawdopodobnie nie odpowie na OP, ale zadziałało dla mnie, dzięki @middus!Ponieważ już raz trafiłem na to pytanie i nie pomogło mi to w moim przypadku (nie miałem
this
, ale zamiast tego miałem instancję selektora jQuery). Wywołanieget()
dostaniesz element HTML, dzięki któremu możesz uzyskaćnodeName
jak wspomniano powyżej.lub
źródło
Możesz również użyć,
$(this).prop('tagName');
jeśli używasz jQuery 1.6 lub nowszego.źródło
Tak. Możesz użyć poniższego kodu:
źródło
Myślę, że nie można używać
nodeName
w jQuery, ponieważ nodeName jest właściwością DOM, a samo jQuery nie ma aninodeName
funkcji, ani właściwości. Ale na podstawie respondenta, który jako pierwszy wspomniał o tychnodeName
sprawach, udało mi się rozwiązać problem w następujący sposób:UWAGA:
this
tutaj jest obiekt jQuery.źródło
Ponieważ jest to pytanie, które pojawia się w Google przy użyciu zmiennej jquery jako pierwsze dziecko jako zapytania, opublikuję kolejny przykład:
Wynikiem jquery jest zmienna (wielka litera): P
źródło
Możesz uzyskać nazwę tagu elementu html na całej stronie.
Możesz użyć:
źródło
uwaga: zamień to na swój selektor (h1, h3 lub ...)
źródło
Napisałem go tylko dla innego numeru i pomyślałem, że może to pomóc również każdemu z was.
Stosowanie:
onclick="_DOM_Trackr(this);"
Parametry:
Kod źródłowy:
źródło
html > body > div#coreApp > div#productpage > div#productpage-wrapper > div > div > div > div > div#pthumb12 > form#thumb_uploader_src > input
$('*').each(function(_i,_e){$(_e).attr('title',_DOM_Trackr(_e,true));});
Najlepszym sposobem rozwiązania problemu jest zastąpienie
$(this).attr("tag")
go jednymthis.nodeName.toLowerCase()
lubthis.tagName.toLowerCase()
.Oba dają dokładnie ten sam wynik!
źródło
Rozważ szybką metodę FILTER :
zwroty:
więc:
źródło
Zamiast tego po prostu zrób:
źródło