编辑,我要在页面加载时将以下按钮设置为“是”。该代码应在Tampermonkey脚本中运行。
我尝试了以下操作,但不起作用(“无法将属性'value'设置为null”):
document.querySelector('.ant-click-animating-without-extra-node').value = "false";
我只发现了this之类的与远程相关的帖子,它们谈论的是表单中的按钮,而不是列表。
这是HTML(我不能这样更改):
<li class="ant-list-item activeRisk">
<div class="ant-list-item-main">
<div class="ant-list-item-meta m-l-mxl">
<div class="ant-list-item-meta-content">
<h4 class="ant-list-item-meta-title">
<span>Does this acquire personal information about the user?</span>
</h4>
</div>
</div>
</div>
<div class="ant-list-item-extra">
<button type="button" class="ant-btn failTest p-l-lg p-r-lg optimus-text-caps answerButton ant-
btn-round ant-btn-sm" ant-click-animating-without-extra-node="false">
<span>Yes</span>
</button>
<button type="button" class="ant-btn null p-l-lg p-r-lg optimus-text-caps answerButton ant-btn-
round ant-btn-sm">
<span>No</span>
</button>
</div>
</li>
答案 0 :(得分:0)
第一个问题是您没有正确查询元素。您正在寻找具有类的元素:
document.querySelector('.ant-click-animating-without-extra-node')...
但是,ant-click-animating-without-extra-node
是一个属性,因此当您尝试获取没有任何内容的value
时,查询什么也找不到,然后失败。
第二个问题是此按钮没有value
。如我所说,它具有属性,因此您可以使用.setAttribute()
设置属性值。
最后,您需要确保脚本在HTML解析到内存中之后运行。这可以通过将脚本放在body
中HTML的最后一位之后来完成。
<li class="ant-list-item activeRisk">
<div class="ant-list-item-main">
<div class="ant-list-item-meta m-l-mxl">
<div class="ant-list-item-meta-content">
<h4 class="ant-list-item-meta-title">
<span>Does this acquire personal information about the user?</span>
</h4>
</div>
</div>
</div>
<div class="ant-list-item-extra">
<button type="button" class="ant-btn failTest p-l-lg p-r-lg optimus-text-caps answerButton ant-
btn-round ant-btn-sm" ant-click-animating-without-extra-node="false">
<span>Yes</span>
</button>
<button type="button" class="ant-btn null p-l-lg p-r-lg optimus-text-caps answerButton ant-btn-
round ant-btn-sm">
<span>No</span>
</button>
</div>
</li>
<script>
document.querySelector('.ant-list-item-extra > button.failTest').setAttribute("ant-click-animating-without-extra-node", "Yes");
console.log(document.querySelector('.ant-list-item-extra > button.failTest'));
</script>