0

我正在使用这个简单的脚本将 target="_blank" 属性添加到所有元素。

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

它工作得很好,但我只希望<a>in<div id="main">受这个脚本的影响。

我试过了 :

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

但这只是行不通....

4

4 回答 4

5

用这个 :

$('#main').find('a').attr('target', '_blank');
于 2013-08-08T15:02:53.793 回答
5
$('#main a').attr('target', '_blank');

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

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

  • '#' 表示 'id'
  • '。' 意思是'css类'
  • “>”的意思是“绝对的孩子”
  • 还有更多

您甚至可以使用 css 类指定标签。例如,如果您只想影响具有 css 类“blankLink”的“a”标签,则可以这样做

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

看看这个

于 2013-08-08T15:03:00.157 回答
1
$('a','#main').attr('target','_blank');

也应该工作。

于 2013-08-08T15:04:47.117 回答
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');
于 2013-08-08T15:15:38.847 回答