我在向dom附加一些内容后尝试将target="_new"
添加到每个a
标记但我没有成功。
请运行代码段,然后点击“ Go CORS Go ”,等待内容完全加载并尝试点击鸭子。尽管是a
标记,但新属性似乎不起作用。任何见解?
var url = encodeURIComponent("https://duckduckgo.com/");
$("button").click(function() {
$.getJSON('http://anyorigin.com/get/?url=' + url + '&callback=?', function(data) {
var cors = data.contents;
$("body").append(cors);
$('body a').each(function() {
$(this).attr('target', "_blank");
});
});
});
<!DOCTYPE html>
<html>
<head>
<base href="https://duckduckgo.com/" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
</head>
<body>
<button>Go CORS Go</button>
</body>
</html>
答案 0 :(得分:1)
在追加
之后编辑ajax结果而不是页面结果尝试以下方法:
var newcors = $(cors).find('a').attr('target', "_blank").end();
$('body').append(newcors);
答案 1 :(得分:1)
ajax返回的响应有一个导致错误的脚本,ReferenceError: DDG is not defined(…)
将在ReferenceError
将.append
语句放在try..catch
中,因此错误不会影响以后的脚本。
var url = encodeURIComponent("https://duckduckgo.com/");
$("button").click(function() {
$.getJSON('http://anyorigin.com/get/?url=' + url + '&callback=?', function(data) {
var cors = data.contents;
try {
$("body").append(cors);
} catch (Exception) {
console.log(Exception);
}
$('body a').attr('target', "_blank");
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<button>Go CORS Go</button>
&#13;
更新:根据评论中的建议,.attr( attributeName, value )
为匹配元素集设置一个或多个属性,因此无需迭代a
元件。
答案 2 :(得分:1)
我假设所有a
元素都存储在cors
。
您可以在将目标追加到body
之前设置目标。
<强> E.g 强>
$("button").click(function() {
$.getJSON('http://anyorigin.com/get/?url=' + url + '&callback=?', function(data) {
var $cors = $(data.contents);
$cors.find('a').attr('target', '_blank');
$('body').append($cors);
});
});
答案 3 :(得分:0)
试试这条简单的
<强>旧强>
$("body").append(cors);
$('body a').each(function() {
$(this).attr('target', "_blank");
});
<强>更新强>
$("body").append(cors).find("a").attr('target', "_new");