Jquery在新标签中打开(_blank)

我根据其他StackOverflow问题/答案设置了一些Jquery。 这个脚本的目的是它使整个div成为基于该div内的任何href标记的链接。

这工作正常,但我需要将其设置为_blank以在新选项卡中打开。 我已经尝试过以下没有运气了。

$(document).ready(function() { $(".product-item").click(function() { $(this).target = "_blank"; window.location = $(this).find("a").attr("href"); return false; }); }); 

编辑

感谢您的帮助,但这些答案都不起作用。 如果有人可以粘贴实际工作的完整代码,而不是没有测试的小片段,如果它工作。 谢谢。

编辑2

感谢kristinalim ,提供完整的工作解决方案。

在页面上设置链接需要@Ravi和@ncksllvn的答案组合:

 // Find link in $(".product-item") and set "target" attribute to "_blank". $(this).find("a").attr("target", "_blank"); 

要在另一个窗口中打开页面,请参阅以下问题: jQuery单击_blank并查看window.open选项的此参考以进行自定义。

更新

你需要一些东西:

 $(document).ready(function() { $(".product-item").click(function() { var productLink = $(this).find("a"); productLink.attr("target", "_blank"); window.open(productLink.attr("href")); return false; }); }); 

注意.attr()的用法:

 $element.attr("attribute_name") // Get value of attribute. $element.attr("attribute_name", attribute_value) // Set value of attribute. 

替换此行:

 $(this).target = "_blank"; 

附:

 $( this ).attr( 'target', '_blank' ); 

这将把它的HREF设置为_blank。

你不能将目标属性设置为div,因为div不知道如何处理http请求。 而不是为链接标记设置目标属性。

 $(this).find("a").target = "_blank"; window.location= $(this).find("a").attr("href") 

window.location 始终引用当前窗口的位置。 更改它只会影响当前窗口。

可以做的一件事是在将target属性设置为_blank后强制点击链接:

检查一下: http //www.techfoobar.com/2012/jquery-programmatically-clicking-a-link-and-forcing-the-default-action

免责声明:我的博客。