jQuery使给定div的所有子链接在新窗口中打开

时间:2012-07-13 04:58:54

标签: jquery

我有一个ID为“MyDiv”的div,其中我需要在新窗口中打开此div的所有子锚点。

我正在尝试:

jQuery('#MyDiv.children() a').click(function(){
    jQuery(this).attr('target', '_blank');
});

4 个答案:

答案 0 :(得分:2)

<子> click here for jsFiddle example

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

如果您不确定此属性的工作原理,请阅读以下内容:


如果您不喜欢使用target="_blank"(在编写xHTML时经常不赞成),您可以将单击事件绑定到锚点并使用javascript /打开一个新窗口jquery的。

如下例所示:

<子> click here for jsFiddle example

$('#MyDiv a').click(function(ev) {
  window.open(this.href);
  ev.preventDefault   (); // see post comment by @nbrooks
});

答案 1 :(得分:1)

问题是主选择器。 .children()不是css选择器的有效部分。如果在css选择器中添加 space ,则将在所有子节点中搜索选择器的以下部分。如果您只想在直接子节点中搜索,则可以使用>代替。例如。将#MyDiv.children() a替换为#MyDiv>a

jQuery('#MyDiv>a').click(function(){
    jQuery(this).attr('target', '_blank');
});

或者您可以使用:

jQuery('#MyDiv>a').click(function(oEvent) {
    oEvent.preventDefault();
    window.open($(this).attr('href'), '_blank');
});

答案 2 :(得分:1)

你可以摆脱选择器中的.children()

标记:

<div id="MyDiv">
    <a href="http://wwww.google.com">1</a>
    <a href="http://wwww.google.com">2</a>
    <a href="http://wwww.google.com">3</a>
    <a href="http://wwww.google.com">4</a>
</div>​

jQuery的:

$('#MyDiv a').click(function(){ 
    $(this).attr('target', '_blank'); 
}); ​

jsFiddle example

答案 3 :(得分:0)

这可能对你有用

$('#MyDiv a').live('click', function() {
    window.open($(this).attr('href'));
    return false;
});