Jquery .parent().attr().split().pop() 返回 undefined



我想检测第二类"rpvItem2";从"的父元素;rtsSelected";。我在这里读过不同的文章,但无法解决这个问题。

该代码在我的本地PC html文件中运行良好。它也在起作用联机,但出现控制台错误。

在控制台中:类型错误:$(…)parent(…).attr(…)未定义

我的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

我的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>

试试这个,

$(document).ready(function(){
        var cls = $("ul.tabset ul.rtsUL").find(".rtsSelected").parent('li').attr('class').split(' ').pop();
        console.log(cls);
    });

将返回

rpvItem2

$(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");
    }
});
<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>
<script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>

我测试了这个代码,它正在工作。可能您使用的是旧版本的jquery

最新更新