孩子选择

时间:2015-04-11 17:55:13

标签: javascript jquery

我在页面中有很多<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>

3 个答案:

答案 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}}和一些属性:

&#13;
&#13;
<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;
&#13;
&#13;

相关问题