我的HTML看起来像这样
<a class="jx_ui_html_a" target="_blank" __jx__id="___$_2854__a" href="https://www.kitty.com">
<div class="jx_ui_html_div path_title" __jx__id="___$_2854__path"></div>
</a>
和
我正在尝试找到一个greasemonkey脚本,如果A类是jx_ui_html_a,它会将href部分从ANYTHING更改为https://www.dog.com 所以结果应该是
<a class="jx_ui_html_a" target="_blank" __jx__id="___$_2854__a" href="https://www.dog.com">
<div class="jx_ui_html_div path_title" __jx__id="___$_2854__path"></div>
</a>
分别
<a class="jx_ui_html_a" target="_blank" __jx__id="___$_28254__a" href="https://www.dog.com">
<div class="jx_ui_html_div path_title" __jx__id="___$_28254__path"></div>
</a>
你能以任何方式帮助我吗?
答案 0 :(得分:2)
以下是两行代码 - 第一行查询DOM以查找所有a
标记(document.querySelector('a')
并将其转换为数组(通过将其作为参数传递给{{1} }),第二个在数组上运行forEach函数,该函数重新分配数组中每个DOM元素的[].slice.call
属性。
href
没有forEach也是如此:
var anchors = [].slice.call(document.querySelectorAll('a');
anchors.forEach(function(element){
element.href = "http://www.dog.com/"
});
要将var anchors = document.querySelectorAll('a');
for(var i=0;i<anchors.length;i++){
anchors[i].href = "http://www.dog.com";
}
的元素限制为仅具有特定类名的元素,请将其作为anchors
参数的一部分提供:
querySelector
var anchors = document.querySelectorAll('a.jx_ui_html_a')
和querySelector
选择元素的方式与渲染应用CSS规则的引擎相同。所以你可以传递像querySelectorAll
这样的东西(将返回'a'元素,它们是'p'元素的直接后代),以及"p > a"
(它将返回div内任何位置的span元素'容器'id)。
"div#container span"
返回第一个匹配项,而querySelector
返回所有匹配元素的类似数组的列表。
答案 1 :(得分:1)
首先,您想要require
jQuery。 You can read about how to do that here.。安装完成后,您可以执行以下操作:
$(document).ready(function() {
$('.jx_ui_html_a').attr('href','http://www.dog.com');
});
在英语中,这将等到页面完全加载($(document).ready()
),搜索具有指定类($('.jx_ui_html_a')
)的所有元素,并替换所有href
属性使用您指定的网址。