Tampermonkey选择带有名称的下拉值

时间:2017-12-07 21:43:30

标签: jquery tampermonkey

我希望Tampermonkey将选择下拉菜单更改为特定国家/地区。 HTML格式为;

  <label>Country</label>
    <span class="select_wrapper">
      <select name="shipping_country_id">
        <option value="46">Afghanistan</option>
        <option value="47">Albania</option>
        <option value="42">United Kingdom</option>
        <option value="43" selected="">United States</option>
      </select>
      <span class="value">United States</span>
    </span>

我试过了;

("select[name='shipping_country_id'] option[value='42']", clickNode, true);

 (document.querySelector && document.querySelector('select[name="shipping_country_id"]') || []).value = '42';

阅读Tampermonkey to select a dropdown value. It has no ID or name, just a class?后 我尝试使用该答案中使用的相同方法;

    waitForKeyElements ("shipping_country_id:has(option[value='42'])", selectCountryDropdown);

function selectCountryDropdown (jNode) {
var evt = new Event ("click");
jNode[0].dispatchEvent (evt);

jNode.val('42');

evt = new Event ("change");
jNode[0].dispatchEvent (evt);
}

我错过了什么或者做错了什么?

1 个答案:

答案 0 :(得分:1)

我通过使用与问题中最后发布的类似方法来实现这一点,只是语法错误。

waitForKeyElements ("select[name=shipping_country_id]:has(option[value=42])", selectCountryDropdown);


function selectCountryDropdown (jNode) {
var evt = new Event ("click");
jNode[0].dispatchEvent (evt);

jNode.val('42');

evt = new Event ("change");
jNode[0].dispatchEvent (evt);
}