检查多个班级

时间:2016-09-23 18:19:37

标签: javascript jquery html

我尝试获取具有特定类或没有类或没有两个类的项目的文本。

这是我的HTML代码 -

<div id="events">
    <ul class="checkout-bar">
        <li class=""><span><a href="#">Order</a></span></li>
        <li class=""><span><a href="#">Booking</a></span></li>
        <li class="t-completed"><span><a href="#">Receiving</a></span></li>
        <li class="t-completed"><span><a href="#">Loading</a></span></li>
        <li class="t-completed active"><span><a href="#">Arrival</a></span></li>
        <li class="inactive"><span><a href="#">Arrival</a></span></li>
        <li class="inactive"><span><a href="#">Availability</a></span></li>
        <li class="inactive"><span><a href="#">Delivery</a></span></li>
    </ul>
</div>

现在,我想获取那些li拥有&{39; t-completed&#39;的链接标记()的文字。上课,哪个有空课,哪些没有&#39; t-completed&#39;和&#39; active&#39;类,<li class="t-completed active">

尝试使用Jquery -

if($('#events .checkout-bar li').length>0){
    $('#events .checkout-bar li').each(function(){  
        var t = $(this);
        if (!t.hasClass() || (t.hasClass("ms-completed") && !t.hasClass("active"))){

        //if($(this).is('.ms-completed:not(.active)') || $(this).attr('class')==""){
            var oldtxt = $(t).find('span a').text();
            if(oldtxt == 'Order'){
                t.find('span a').text("Ordered");
            }else if(oldtxt == 'Booking'){
                t.find('span a').text("Booked");
            }else if(oldtxt == 'Receiving'){
                t.find('span a').text("Received");
            }else if(oldtxt == 'Loading'){
                t.find('span a').text("Loaded");
            }else if(oldtxt == 'Arrival'){
                t.find('span a').text("Arrived");
            }else if(oldtxt == 'Availability'){
                t.find('span a').text("Available");
            }else if(oldtxt == 'Delivery'){
                t.find('span a').text("Delivered");
            }else if(oldtxt == 'In transit'){
                t.find('span a').text("Transited");
            }else{
                t.find('span a').text(oldtxt);
            }
        }
    });
}   

替换那些<a><li>类且仅("")类的"ms-completed"标记文本。目前,请替换那些<a> <li>标记文字[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 已完成活动&#39;类。

建议?

1 个答案:

答案 0 :(得分:2)

您可以在此处尝试hasClass()

var t = $(this);
if (t.attr("class") === '' || (t.hasClass("t-completed") && !t.hasClass("active"))) {....}

更新:我不知道你的实际代码中是否有这一行:

var oldtxt = $(t).find('span a').text();

但是t已经等于$(this)所以不要再在$()中换行。

此外,对于oldtxt(基于上面显示的HTML),这应该足够了:

var oldtxt = t.text();