我有一个ID为“MyDiv”的div,其中我需要在新窗口中打开此div的所有子锚点。
我正在尝试:
jQuery('#MyDiv.children() a').click(function(){
jQuery(this).attr('target', '_blank');
});
答案 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');
});
答案 3 :(得分:0)
这可能对你有用
$('#MyDiv a').live('click', function() {
window.open($(this).attr('href'));
return false;
});