Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery将所选类添加到li_Javascript_Jquery_Html - Fatal编程技术网

Javascript Jquery将所选类添加到li

Javascript Jquery将所选类添加到li,javascript,jquery,html,Javascript,Jquery,Html,您好,我有以下显示类别名称的ul li: <ul> <li class="selected" data-tab-id="0"></li> <li data-tab-id="12">...</li> <li data-tab-id="3">...</li> <li data-tab-id="15">...</li> <li data-tab-id="7">...</li&g

您好,我有以下显示类别名称的
ul li

<ul>
<li class="selected" data-tab-id="0"></li>
<li data-tab-id="12">...</li>
<li data-tab-id="3">...</li>
<li data-tab-id="15">...</li>
<li data-tab-id="7">...</li>
</ul>
javascript脚本如下所示:

<script type="text/javascript">
var cat_id = '<?=$this->catid?>'

$(document).ready(function () {

});
</script>

变量cat_id=“”
$(文档).ready(函数(){
});
当前,索引处的页面将首先选择
li data tab id=“0”
,并且
var cat\u id
将不返回任何内容。现在,当用户导航到另一个选项卡(如
data tab id=“12”
)时,
var cat_id
将返回值12,我如何从默认li中删除所选类并将其替换为
data tab id=“12”
。谢谢使用此示例

$('ul li').click(function() {
    $('ul li.selected').removeClass('selected');
    $(this).closest('li').addClass('selected');
})
使用
addClass()
removeClass()
分别添加和删除类。 试试这个

已更新

var cat_id = '<?=$this->catid?>';
$('li').removeClass('selected'); 
 $('li').each(function(){
   if($(this).attr('data-tab-id')==cat_id){
    $(this).addClass('selected'); 
  }
})
var cat_id='';
$('li').removeClass('selected');
$('li')。每个(函数(){
if($(this).attr('data-tab-id')==cat\u id){
$(this.addClass('selected');
}
})
在不使用循环的情况下更新了

var cat_id = '<?=$this->catid?>';
$('li').removeClass('selected');
$('li[data-tab-id='+cat_id+']').addClass('selected');
var cat_id='';
$('li').removeClass('selected');
$('li[data tab id='+cat_id+']')。addClass('selected');


假设
列表
作为UL的ID–为了避免在页面周围有多个UL时出现问题:

$("ul#list")
    .find(".selected").removeClass("selected")
    .end()
    .find("[data-tab-id=" + cat_id + "]").addClass("selected");
当然,您也可以在两个jQuery调用中实现这一点:

$("ul#list .selected").removeClass("selected");
$("ul#list [data-tab-id=" + cat_id + "]").addClass("selected");

我不知道你的意思,但这就是你如何添加类$('li')。addClass('selected');和$('.selected')。removeClass('selected');可能只是旁注的重复,我注意到您在代码中看到了上面的
短标记,从而使用了PHP。请注意这些标记,因为它们并非在每次安装PHP时都可用。它是
php.ini
文件中的一个设置,可能不会在所有安装中打开。当涉及到代码的可移植性时,这可能会导致错误。坚持使用
@War10ck谢谢infos@zlippr没问题,伙计。祝你好运,编码快乐!:)Poster询问如何在页面加载时从变量中选择它。这不是答案。让我们看看你的答案,然后请epascarello,因为我需要同样的东西:)@ConnorMiles:看看上面epascarello链接的问题。当然……现在让我看看如果有任何问题这个答案不好,没有必要循环!没有什么比重新发明jQuery选择器更好的了。。谢谢你让我知道…:)更新了我的答案。。请检查一下我脑子里的。。今天:P强调了一点,海报上说猫的id可能是空的。需要关于代码的if语句。据我从问题中了解,
cat_id
仅在启动时,当选择默认的
li
时才为空。此代码不在此上下文中执行,但当用户在另一个选项卡上导航时,因此设置了
cat_id
。如果不是这样,那么我需要OP提供更好的上下文(例如,何时执行此代码)。