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

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/18957255/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-26 22:50:54  来源:igfitidea点击:

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

javascriptjqueryhtml

提问by Gaurav Agrawal

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 i.e. class="selected"bu sing jquery. I used this jquery code

代码并希望将类名添加到标签父标签 li 即总线class="selected"jquery。我使用了这个 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");doesn't work...

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

Please help me out...

请帮帮我...

回答by Tushar Gupta - curioustushar

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

回答by Anton

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

回答by sidonaldson

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);"

回答by sidonaldson

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

回答by Leigh.D

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