我是JQuery的新手,并且努力在列表中设置元素的属性。我有以下html
<ul class="collections">
<li><a href="#" id="2">LINEN </a></li>
<li><a href="#" id="3">ANIMAL PRINTS</a></li>
<li><a href="#" id="4">BASKET WEAVE</a></li>
<li><a href="#" id="5">FAUX LEATHER</a></li>
<li><a href="#" id="6">FAUX SUEDE</a></li>
<li><a href="#" id="7">HALLMARK</a></li>
<li><a href="#" id="8">JUMBO CORD</a></li>
<li><a href="#" id="9">PHYTHON</a></li>
<li><a href="#" id="10">CHENILLE CARLTON</a></li>
我想将属性class =“current”添加到id为2的列表中的项目。
我可以使用$('.collections a').attr('class','current');
我可以使用以下方法检测ID为2的项目:
if($('.collections a').attr('id') == 2){
console.log('WE HAVE A MATCH');
}
但在这里我不确定如何获得对实际元素的引用。
我已经使用equals方法设置了类:
$(".collections a:eq(0)").attr('class','current');
但是,如果列表的顺序发生变化,我希望能够使用元素的id来设置它。
非常感谢任何帮助。
提前致谢。
此致
答案 0 :(得分:3)
由于id
属性应该是唯一的,这样做
$(".collections a#2").addClass("current")
但我强烈建议你不用数字开始你的id
-
答案 1 :(得分:1)
这应该没问题:
var id = 2;
$('.collections li a').removeClass('current'); // reset current class
$('#' + id).addClass('current'); // set current case given an ID
答案 2 :(得分:1)
这里至少有一些问题需要回答。
$.prop()
(link)$('#id_of_element')
或$('li#id_of_li_element')
)(full list of selectors here)$('selector').length
。如果没有找到任何内容就可以使用if($('li#id_of_li').length){ ... }
; <li id="li_1">
而不是<li id="1">
启动ID。$.addClass('classname')
,$.hasClass('classname')
和$.removeClass('classname')
$('elements').is('selector')
(link here)我真的希望这能解决一些问题