如何向子元素添加属性(或更改)?

时间:2013-08-08 15:01:20

标签: javascript jquery

我使用这个简单的脚本将target =“_ blank”属性添加到所有元素。

$(function(){
$('a').attr('target', '_blank');
});

效果很好,但我只想让<a>中的<div id="main">受到此脚本的影响。

我试过了:

$('#main').$('a').attr('target', '_blank');

但这只是不起作用......

4 个答案:

答案 0 :(得分:5)

使用此:

$('#main').find('a').attr('target', '_blank');

答案 1 :(得分:5)

$('#main a').attr('target', '_blank');

您应该查看jQuery网站以获取有关选择器的信息(选择器是传递给$ function的字符串)。

在这种情况下,jQuery将在id为“main”的任何标签中选择所有“a”标签。

  • '#'表示'id'
  • ''意思是'css class'
  • '&GT;'意为'绝对孩子'
  • 还有更多

您甚至可以使用css类指定标记。例如,如果您只想影响具有css类'blankLink'的'a'标签,则可以执行此操作

$('#main a.blankLink').attr('target', '_blank');

检查this了!

答案 2 :(得分:1)

$('a','#main').attr('target','_blank');

也应该有效。

答案 3 :(得分:0)

假设你的html结构是这样的:

  <div id="main">
         <a id="1"></a>
         <a id="2"></a>
         <a id="3"></a>

         <div>
           <a id="4"></a>
            <div>
               <a id="5"></a>
            </div>
         </div>
    </div>

注意:

这将改变1,2,3,4,5:

 $('#main a').attr('target', '_blank');

这将改变1,2,3:

   $('#main > a').attr('target', '_blank');