Ich möchte die zweite Klasse "rpvItem2" vom übergeordneten Element von "rtsSelected" erkennen. Ich habe verschiedene Artikel hier gelesen, konnte dieses Problem jedoch nicht beheben.Jquery .parent(). Attr(). Split ('') .pop() liefert undefined
The code works fine in my local PC html file. It is also working online but with console error.
In console: TypeError: $(...).parent(...).attr(...) is undefined
Meine jQuery:
// window load BEGINS
$(window).load(function() {
var getRtsSelected = $("ul.tabset ul.rtsUL").find(".rtsSelected");
var testtabsetparent = $(getRtsSelected).parent('li').attr('class').split(' ').pop();
if (testtabsetparent != '') {
$(".tab-content .tab-box #ContentPlaceHolder1_" + testtabsetparent + " iframe").addClass("content-loaded");
}
});
// window load ENDS
Mein HTML:
<ul id="navtabs" class="tabset">
<li>
<ul class="rtsUL">
<li class="rtsLI rtsFirst rpvItem1">
<a href="#" class="rtsLink rtsBefore">Item One</a>
</li>
<li class="rtsLI rpvItem2">
<a href="#" class="rtsLink rtsSelected">Item Two</a>
</li>
</ul>
</li>
Einfache Debugging sollte dies sortieren. Verwenden Sie einige dev-Tools und finden Sie heraus, welche Sache nicht definiert ist. Beginnen Sie mit dem Basisobjekt, dann dem Eltern, dann dem Attribut, dann dem Split-Array und schließlich dem Pop-Ergebnis. – evolutionxbox
Verwenden Sie keine Klassen dafür, verwenden Sie 'data- *' Attribute. – moonwave99
Wahrscheinlich wird Ihr UL-Element oder sein Inhalt dynamisch geladen (oder Klassen werden später gesetzt), nachdem das Fensterladeereignis ausgelöst wurde. Ihr Fehler bedeutet, dass Sie versuchen, 'pop()' auf 'undefined' zu setzen, da Sie 'attr()' bei leerer Menge aufrufen. –