【问题标题】:Unable to programatticaly click item in drop down menu [duplicate]无法以编程方式单击下拉菜单中的项目[重复]
【发布时间】:2019-04-08 09:24:19
【问题描述】:

我正在尝试为 Tampermonkey 创建一个简单的脚本,当通过键盘快捷键触发时,它将以编程方式在下拉菜单中单击/选择特定的字体大小。当我单击论坛面板中的特定按钮时,菜单会打开,它会列出所有可用的文件字体大小。

菜单如下所示: dropdown menu

Chrome 的检查器给出了打开菜单的 html 格式: html format

这里有很多主题涉及这个主题,如何单击下拉项目,我已经尝试了几乎所有的方法,包括 javascript 和 jquery,但没有任何效果。

我只设法以编程方式单击并打开使用此代码打开下拉菜单的按钮:

document.getElementById('cke_12').click();

打开下拉菜单后,我触发了应该选择/单击特定字体大小的代码。我试过这些代码:

document.getElementById('cke_70').click();
document.querySelector('cke_70').click();
document.getElementById('cke_panel_list').selectedIndex = "8"
document.getElementById("cke_panel_list").value = "8";
document.querySelector('cke_panel_list').value = '8'
$('cke_70')[0].click();
$('cke_70').click();
$("li#cke_70").trigger("click");
$("ul li:first").trigger("click");
$('cke_panel_list li:eq(8)').trigger("click");
$('cke_panel_list').find('li').eq(8).click();
$('cke_panel_list').val('8').trigger('change');
$('cke_panel_list').val('8').trigger('click');
$('cke_panel_list').prop('selectedIndex', 8);

我也尝试过使用 cke_70_option 作为 id。但是没有选择/单击任何项​​目,下拉菜单保持打开状态。

知道我做错了什么吗?

【问题讨论】:

  • 第一次点击后您可能需要等待。请参阅重复的问题。

标签: javascript jquery html drop-down-menu tampermonkey


【解决方案1】:

你可以用这个:

$(document).on("click", ".cke_panel_list", function(){
    return $(this).val();
 }); 

【讨论】:

    【解决方案2】:
    $(".cke_panel_list").click(function(){
        return $(this).val();
    });
    

    这是 jQuery 选择所有具有 cke_panel_list 类的元素。返回该值将为您提供该元素的值。

    【讨论】:

    • 虽然此代码可能会解决问题,但 including an explanation 关于如何以及为什么解决问题将真正有助于提高您的帖子质量,并可能导致更多的赞成票。请记住,您正在为将来的读者回答问题,而不仅仅是现在提出问题的人。请编辑您的答案以添加解释并说明适用的限制和假设。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多