javascript - 更改DOM时jquery .each函数发生冲突
问题描述
有谁知道为什么此功能仅在两种情况下都部分有效(带有 Tampermonkey 扩展)
html:
<div class="container">
<p>
<a onclick="alert('item clicked')" class="">Element to auto click</a>
<a href="myurl/telechargement">Element to open in new tab</a>
</p>
</div>
版本 1:
setTimeout(function(){
$('.container a[href*="telechargement"]').each(function() {
$(this).attr("target", "_blank"); //not working
console.log(this) // see image bellow
$(this).prev()[0].click(); //working
});
}, 1000);
版本 2(几乎相同):
setTimeout(function(){
$('.container a[href*="telechargement"]').each(function() {
$(this).attr("target", "_blank"); //working
console.log(this) // see image bellow (same result)
$(this).prev().click(); //not working
});
}, 1000);
控制台target="_blank"
在两种情况下都返回,但在第一种情况下 DOM 没有改变,所以没有目标属性。为什么它会这样?
它似乎在小提琴中工作,所以我可能在错误的地方寻找https://jsfiddle.net/n71w52hy/2/ 。这可能来自 TamperMonkey 吗?欢迎任何建议。
谢谢臀部。