为什么我的选择元素没有更改选项?

Why is my select element not changing options?

提问人:deniz 提问时间:10/26/2023 更新时间:10/26/2023 访问量:26

问:

我正在使用 Jquery 和 Jquery-UI 1.7.2。代码本身是一个篡改脚本,其中包含GM_setValue所需的授权,并且已经编写GM_getValue。有问题的代码部分是 select 元素应更新的部分,以便在文档开头将所选选项作为保存在 GM 中的选项。select 元素根本不显示已保存的选项,而是保留在默认的第一个选项上。我几乎尝试了所有方法,但不知道代码出了什么问题。

我尝试调试我的代码并尝试使用不同的方法来实现我想要的东西,但似乎没有任何效果。我还检查了与此类似的其他问题,但其他帖子的解决方案似乎不适用于我的情况。

<div class="feature-select" id="element-type">
      <select>
        <option value="water" selected>Water</option>
        <option value="earth">Earth</option>
        <option value="land">Land</option>
        <option>
      </select>
</div>

$('.feature-select').each(function() {
    this.value = GM_getValue(`velocity.data.${$(this).attr('id').split("-")[0]}.type`, "")
    $(this).addEventListener('change', function (e) {GM.setValue(`velocity.data.${$(this).attr('id').split("-")[0]}.type`, e.target.value); console.log(e.target.value)});
})

jquery jquery-ui 下拉菜单 tampermonkey wkuserscript

评论

0赞 Twisty 10/26/2023
欢迎使用 Stack Overflow。根据您的标记,这似乎不是基于 jQuery UI 的。请提供一个最小的可重复示例,最好参加这次旅行

答:

2赞 Samiya Afzal Minhas 10/26/2023 #1

看起来您正在尝试更改外部容器的值。特别是类 .feature-select。但是,应以内部元素为目标以更新其值。

您同时使用旧的 (GM_getValue) 和新的 (GM.setValue) Tampermonkey API。您应该坚持使用一个版本,无论是所有旧式还是所有新式方法,以获得更有效的方法。希望这会有所帮助

评论

0赞 deniz 10/26/2023
感谢上述内容,现在正在检查实际的 select 元素而不是容器 div。但是,现在该值在设置时变得没有任何值,但对它被设置为的值使用 console.log 是不同的值。如何解决此问题?
0赞 Death-is-the-real-truth 10/26/2023
@deniz请更新您的问题,以显示您已经在最小可重现示例中尝试过的内容。