如何从锚标记 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
how to call jQuery(this) from anchor tag onclick function
提问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");
}