Javascript 我无法获取锚标记的父元素
HTML代码:Javascript 我无法获取锚标记的父元素,javascript,jquery,html,Javascript,Jquery,Html,HTML代码: <ul class="nav nav-tabs"> <li role="presentation" id="tab1" class="active"><a onclick="switchTabs(1)">Tab1</a></li> <li role="presentation" id="tab2"><a onclick="switchTabs(2)">Tab2</a>&
<ul class="nav nav-tabs">
<li role="presentation" id="tab1" class="active"><a onclick="switchTabs(1)">Tab1</a></li>
<li role="presentation" id="tab2"><a onclick="switchTabs(2)">Tab2</a></li>
</ul>
原因是什么?将元素发送到函数中,然后您将得到它的父元素:
<a onclick="switchTabs(this,1)">
将元素发送到函数中,然后您将得到它的父元素:
<a onclick="switchTabs(this,1)">
检查此方法以使其更简单(并使用
$(this)
)
$(文档).on('click','nav li a',function(){
让tab=$(this).data('tab');//$(this)是单击的a。
$('.nav li.active').removeClass('active');//隐藏活动选项卡
$('.nav li#tab'+tab).addClass('active');//显示选项卡
})
.active{font size:20px;color:red}
- tab1
- tab2
检查此方法以使其更简单(并使用$(此)
)
$(文档).on('click','nav li a',function(){
让tab=$(this).data('tab');//$(this)是单击的a。
$('.nav li.active').removeClass('active');//隐藏活动选项卡
$('.nav li#tab'+tab).addClass('active');//显示选项卡
})
.active{font size:20px;color:red}
- tab1
- tab2
试试这种方法,我认为这将是更好的解决方案
.主动{
颜色:红色;
}
- tab1
- tab2
功能开关选项卡(elm){
var$li=$(elm.parent();
if(!$li.hasClass('active')){
$li.addClass(“活动”);
$li.sides().removeClass('active');
}
}
试试这种方法,我认为这将是更好的解决方案
.主动{
颜色:红色;
}
- tab1
- tab2
功能开关选项卡(elm){
var$li=$(elm.parent();
if(!$li.hasClass('active')){
$li.addClass(“活动”);
$li.sides().removeClass('active');
}
}
您只将索引而不是此对象传递给switchTab函数。您可以使用idx获取单击的li,然后放入逻辑以添加/删除活动类
请参阅下面的代码
功能切换选项卡(idx){
//这不起作用
//var$li=$(this.parent();--您没有在函数中的任何地方传递它,因此它没有得到
$('li').removeClass('active');//删除所有活动
var$li=$('#tab'+idx).addClass('active');//使用idx创建单击的li的选项卡id并添加active类
}
.active{
颜色:红色;
}
- tab1
- tab2
您只将索引而不是此对象传递给switchTab函数。您可以使用idx获取单击的li,然后放入逻辑以添加/删除活动类
请参阅下面的代码
功能切换选项卡(idx){
//这不起作用
//var$li=$(this.parent();--您没有在函数中的任何地方传递它,因此它没有得到
$('li').removeClass('active');//删除所有活动
var$li=$('#tab'+idx).addClass('active');//使用idx创建单击的li的选项卡id并添加active类
}
.active{
颜色:红色;
}
- tab1
- tab2
您可以通过开关选项卡(1)
传递$(this)
,调用函数时未定义this
。最好使用jQuery分配侦听器,而不是在模板中使用onclick
。然后,jQuery将为您的执行此部分。您可以使用开关选项卡(1)
传递$(this)
,调用函数时您没有定义this
。最好使用jQuery分配侦听器,而不是在模板中使用onclick
。那么,jQuery将为您的用户完成这一部分。谢谢!它成功了,谢谢!它成功了。
function switchTabs(elm,idx) {
// this is not working
var $li = $(elm).parent();
// Rest of your code...