简体   繁体   English

如何从锚标签onclick函数调用jQuery(this)

[英]how to call jQuery(this) from anchor tag onclick function

I have 我有

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

code and wants to add class name to a tag parrent tag li ie class="selected" bu sing jquery. 代码,并希望将类名添加到标签parrent标签li ie class="selected" bu sing jquery。 I used this jquery code 我使用了这个jquery代码

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

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

But this line jQuery(this).closest('li').addClass("selected"); 但这行jQuery(this).closest('li').addClass("selected"); doesn't work... 不起作用......

Please help me out... 请帮帮我...

HTML HTML

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

js JS

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

or 要么

js JS

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

You need to send the element through the function like this 你需要像这样通过函数发送元素

HTML HTML

onclick="setSelectedTestPlan(this);"

js JS

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

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

One line: 一条线:

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

but you will have to amend your event to pass through 'this'; 但你必须修改你的活动才能通过'this';

onclick="setSelectedTestPlan(this);"
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>

alternative 替代

    <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();   
   });
 });

HTML HTML

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

JS JS

function setSelectedTestPlan(e) {
   jQuery(this)closest('li').addClass("selected").siblings().removeClass("selected");
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM