【问题标题】:How do I select an option with Javascript in a dropdown that doesn't have an element ID?如何在没有元素 ID 的下拉列表中选择带有 Javascript 的选项?
【发布时间】:2015-10-06 20:42:32
【问题描述】:

我有一个无法编辑的网站,但我经常访问。我同时使用 Greasemonkey for Firefox 和 Tampermonkey for Chrome 来尝试使用 Javascript 在下拉列表中自动选择一个值。下面是下拉菜单的元素。

<select name="term">
    <option value="12">12 /mo. - $20.95/mo.</option>
    <option value="24">24 /mo. - $17.95/mo.</option>
    <option value="36">36 /mo. - $15.95/mo.</option>
</select>

如您所见,没有元素 ID。我尝试关注here 和here 上的答案,但将它们更改为使用document.getElementsByName 而不是document.getElementById,因为这个下拉元素没有ID,但我所做的一切都没有奏效。

当我访问该网页时,如何使用 Greasemonkey 或 Tampermonkey 自动选择“36”的值?

【问题讨论】:

    标签: javascript jquery greasemonkey tampermonkey dropdown


    【解决方案1】:

    您可以使用属性选择器按名称访问元素。当您设置其值时,将选择具有该值的选项。

    $("select[name=term]").val("36");
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <select name="term">
        <option value="12">12 /mo. - $20.95/mo.</option>
        <option value="24">24 /mo. - $17.95/mo.</option>
        <option value="36">36 /mo. - $15.95/mo.</option>
    </select>

    【讨论】:

    • 我试过了,但它仍然没有做任何事情。不知道我做错了什么。如果此网页上有多个下拉菜单具有基本相同的元素和值,是否会有所不同?
    • 这将使用name="term"更新所有下拉列表
    • 添加了一个可执行的 sn-p 以表明它可以工作。不过,我不知道从 GreaseMonkey 做这件事是否会有所作为。
    • 所以我按照下面的人的建议做了(stackoverflow.com/a/32979483/5309708):// @require http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js// ==/UserScript==$("select[name=term]").val("36"); 但它没有用。
    • 不,抱歉。我不知道在 GreaseMonkey 或 TamperMonkey 中运行代码时会发生什么变化。
    【解决方案2】:

    // ==UserScript==
    // @name         http://stackoverflow.com/questions/32979378
    // @match        http://website.with.dropdown.com/*
    // @grant        none
    // ==/UserScript==
    (document.querySelector && document.querySelector('select[name="term"]') || []).value = '36';
    <select name="term">
      <option value="12">12 /mo. - $20.95/mo.</option>
      <option value="24">24 /mo. - $17.95/mo.</option>
      <option value="36">36 /mo. - $15.95/mo.</option>
    </select>

    【讨论】:

      【解决方案3】:

      看起来你可以在greasemonkey中使用jQuery

      // @require       http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js
      

      How can I use jQuery in Greasemonkey?

      那么 jQuery 选择器将是:

      $("select[name=term]")
      

      https://api.jquery.com/attribute-equals-selector/

      【讨论】:

      • 我试过了,但它仍然没有做任何事情。不知道我做错了什么。如果此网页上有多个下拉菜单具有基本相同的元素和值,是否会有所不同?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-23
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多