将列表中按钮的值设置为 "yes"

Setting value of button in a list to "yes"

EDIT 我想做的是在页面加载时将下面的按钮设置为 "yes"。代码应 运行 在 Tampermonkey 脚本中。

我尝试了以下方法,但它不起作用 ("Cannot set property 'value' of 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>

第一个问题是您没有正确查询元素。您正在寻找具有 class 的元素:

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>