9

我有

 <ul>
            <li><a onclick="setSelectedTestPlan();" href="javascript:void(0);">New Test</a></li>
            <li><a onclick="setSelectedTestPlan();" href="javascript:void(0);">New Test fdgfdgfdgfdgfdgfdgfdgfdg fdg</a></li>
            <li><a onclick="setSelectedTestPlan();" href="javascript:void(0);">New Plan</a></li>
            <li><a onclick="setSelectedTestPlan();" href="javascript:void(0);">Test</a></li>
        </ul>

代码并希望将类名添加到标签父标签 li 即class="selected"bu sing jquery。我使用了这个 jquery 代码

function setSelectedTestPlan() {
        jQuery("#tree ul li").each(function () {
            jQuery(this).removeClass("selected");
        });

        jQuery(this).closest('li').addClass("selected");
    }

但是这条线jQuery(this).closest('li').addClass("selected");不起作用...

请帮帮我...

4

5 回答 5

23

HTML

<li><a onclick="setSelectedTestPlan(this);" href="javascript:void(0);">New Test</a></li>

js

function setSelectedTestPlan(el) {      
       jQuery("#tree ul li").removeClass("selected");
       jQuery(el).closest('li').addClass("selected");
    }

或者

js

function setSelectedTestPlan(el) { 
   jQuery(el).closest('li').addClass("selected").siblings().removeClass("selected");
}
于 2013-09-23T10:46:31.250 回答
2

您需要通过这样的功能发送元素

HTML

onclick="setSelectedTestPlan(this);"

js

function setSelectedTestPlan(ele) {      
       jQuery("#tree ul li").each(function () {
            jQuery(this).removeClass("selected");
        });

        jQuery(ele).closest('li').addClass("selected");
    }
于 2013-09-23T10:44:52.087 回答
2

一条线:

jQuery(this).closest('li').addClass("selected").siblings().removeClass("selected");

但是您必须修改您的事件以通过“this”;

onclick="setSelectedTestPlan(this);"
于 2013-09-23T10:47:02.473 回答
1
function setSelectedTestPlan(e) {
    jQuery("#tree ul li").each(function () {
        jQuery(this).removeClass("selected");
    });

    jQuery(e).closest('li').addClass("selected");
}

 <li><a onclick="setSelectedTestPlan(this);" href="javascript:void(0);">New Test</a></li>

选择

    <ul>
        <li><a class="mylink" href="javascript:void(0);">New Test</a></li>
        <li><a class="mylink" href="javascript:void(0);">New Test fdgfdgfdgfdgfdgfdgfdgfdg fdg</a></li>
        <li><a class="mylink" href="javascript:void(0);">New Plan</a></li>
        <li><a class="mylink" href="javascript:void(0);">Test</a></li>
    </ul


$(function(){
$(".mylink").click(function(e){
     $(".mylink").parents("li").removeClass("selected");
     $(this).parents("li").addClass("selected");
     e.preventDefault();   
   });
 });
于 2013-09-23T10:45:05.187 回答
0

HTML

<li><a onclick="setSelectedTestPlan.call(this, event);" href="javascript:void(0);">New Test</a></li>

JS

function setSelectedTestPlan(e) {
   jQuery(this)closest('li').addClass("selected").siblings().removeClass("selected");
}
于 2018-12-05T21:38:07.680 回答