如何为指定<div>内所有内容设置target="_blank"属性
为指定
内所有链接设置新标签页打开的方案
方法1:JavaScript 精准控制
给目标
加个ID或类,用JS遍历里面的所有
<a>标签,逐个添加上target="_blank"属性。比如目标的ID是
target-container,代码如下:// 选中目标容器内的所有链接 const innerLinks = document.querySelectorAll('#target-container a'); // 遍历给每个链接加属性 innerLinks.forEach(link => { link.setAttribute('target', '_blank'); });
要是用类选择器,把#target-container换成.target-class就行,完全不会影响容器外的链接。
方法2:HTML 嵌套方案(限无内部独立链接场景)
如果
里没有单独的
<a>标签,只想让整个区块点击后在新标签页打开,可以把套在一个
<a>里,给外层<a>加target="_blank":<a href="你的目标链接" target="_blank" style="text-decoration: none;"> <div style="cursor: pointer;"> <!-- 这里放你的内容,不能嵌套其他<a>标签 --> 示例内容1 <p>示例内容2</p> </div> </a>
注意:HTML规范不允许<a>嵌套<a>,所以如果
里本身有多个独立链接,这个方法用不了。
方法3:jQuery 简化写法(已引入jQuery时可用)
如果项目里已经用了jQuery,一行代码就能搞定:
$('#target-container a').attr('target', '_blank');
为啥你之前的尝试没效果?
<base target="_blank">是全局生效的,不管放在页面哪个位置,都会影响所有链接,所以外面的example.html也会被改成新标签页打开。<div target="_blank">没用是因为target属性只针对<a>、<form>这类交互元素,<div>不支持这个属性,浏览器会直接忽略。
内容的提问来源于stack exchange,提问作者reeman3000
相关产品推荐
相关产品推荐

