将列表中按钮的值设置为“是”

时间:2019-09-13 21:11:53

标签: javascript tampermonkey

编辑,我要在页面加载时将以下按钮设置为“是”。该代码应在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>

1 个答案:

答案 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>