我在页面中有很多<li></li>
,每个<li>
都有一个链接元素(<a>)
。
我正在尝试使用select <a>
为所有<li>
添加属性,但我不能。
我使用以下代码选择<li>
,我可以选择它们,但不能将属性添加到links
。
<li><a href="#"></a></li>
<script>
$slide.each(function (i) {
this.id = slideClassPrefix + i;// I can add id to each <li>
var MyHTML = this.find('a');//This my code for select links :<a>
});
</script>
答案 0 :(得分:1)
没有足够的代码可以肯定,但我可以给你一个指针。要使用jQuery设置属性,请使用.attr(attributeName, value)
:https://api.jquery.com/attr/
<li><a href="#">Test 1</a></li>
<script type="text/javascript">
$("li").each(function(){
$(this).find("a").attr("style","color:red;");
})
</script>
正如您可以在文档中阅读的那样,您可以根据要更改的属性更改传递的第一个参数,并根据要设置的值更改第二个参数。
https://jsfiddle.net/xhk1qbgj/
对于您的特定情况,假设this.find('a')
正在获取正确的jQuery对象,您应该可以执行以下操作:
var MyHTML = this.find('a');
MyHTML.attr('style','color:red;');
答案 1 :(得分:1)
您实际上不必使用.each
。您可以使用它直接访问所有链接:$('li > a').attr("style","color:red;");
答案 2 :(得分:1)
您通常不必使用$.each
来使用jQuery进行简单的DOM操作。
您可以在一个选项中为每个孩子id
设置每个<li>
的{{1}}和一些属性:
<a>
&#13;
var i = 0;
var slideClassPrefix = 'li';
$('li')
.attr('id', function() {
return slideClassPrefix + i++
})
.find('a')
.attr('href', '#');
&#13;
li {
padding: 5px;
}
#li0 {
background-color: red;
}
#li1 {
background-color: blue;
}
a {
color: white;
}
&#13;