jquery - jQuery如何选择带有特定文本的按钮
问题描述
我在对话框中有一个按钮,对话框建立在一个 div 上,该 div 有一个 id。我试过这个:
$("#idOfDiv button:contains(\"Submit\")").trigger("click");
当按下“Enter”键时,这会在按键处理程序中调用。不幸的是,它不起作用。HTML 看起来像这样:
<div class="ui-dialog ui-widget ui-widget-content ui-corner-all ui-front ui-dialog-osx ui-dialog-buttons ui-draggable"
style="height: auto; width: 320px; top: 526px; left: 543px; display: block;"
tabindex="-1" role="dialog"
aria-describedby="selindividual"
aria-labelledby="ui-id-1">
<div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix ui-draggable-handle">
<span id="ui-id-1" class="ui-dialog-title">
Select Individual
</span>
<button type="button"
class="ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only ui-dialog-titlebar-close"
role="button"
title="Close">
<span class="ui-button-icon-primary ui-icon ui-icon-closethick"></span>
<span class="ui-button-text">Close</span>
</button>
</div>
<div id="idOfDiv" style="width: auto; min-height: 0px; max-height: none; height: 48px;" class="ui-dialog-content ui-widget-content"><div class="dialog-panel">
<p class="dlgline">Select individual:
<select id="biPersonID">
<option value="0">Create new resume</option>
<option value="1">Name A</option>
<option value="2">Name B</option>
</select>
</p>
</div>
</div>
<div class="ui-dialog-buttonpane ui-widget-content ui-helper-clearfix">
<div class="ui-dialog-buttonset">
<button type="button" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" role="button">
<span class="ui-button-text">Submit</span>
</button>
</div>
</div>
</div>
[编辑] 也许它的事件处理程序?:
$("#idOfDiv").keypress(function(e) {
if ( e.keyCode == $.ui.keyCode.ENTER ) {
$("#idOfDiv button:contains(\"Submit\")").trigger("click");
}
});
[Edit#2] 如果我在表达式上设置了监视,我正在使用 Mozilla 及其开发人员工具来调试它:
$("#idOfDiv button:contains(\"Submit\")")
在 Watch 表达式面板中,我看到了手表并展开它显示:
context: HTMLDocument http://localhost:8000/?cnt=ceresume
length: 0
prevObject: {...}
selector: "#idOfDiv button:contains(\"Submit\")"
<prototype>: {...}
长度:0 告诉我这是不正确的。
[Edit#3] 我正在使用 jQuery 对话框类:
$("#idOfDiv").dialog({modal:true
,draggable:true
,resizable:false
,position:{my:"center", at:"center", of:window}
,show:"blind"
,hide:"blind"
,height:140
,width:320
,dialogClass:"ui-dialog-osx"
,buttons:{"Submit":function() {
/* Stuff to do on submit */
}}});
解决方案
缺少括号和右双引号:
$("#idOfDiv button:contains(\"Submit\").trigger("click");
^^^
正确的格式是:
$("#idOfDiv button:contains(\"Submit\")").trigger("click");
^^
根据您更新的答案,您正在寻找下一个元素下包含特定文本的按钮。因此,选择是:
$("#idOfDiv").next('.ui-dialog-buttonpane').find("button:contains(\"Submit\")")
推荐阅读
- python - django:查看删除html表格行在数据库中不生效
- amazon-web-services - 实例化 snitch 类 'org.apache.cassandra.locator.Ec2Snitch' 时出错
- python - 未定义帮助方法,即使安装了包
- service - /etc/systemd/system 中的服务使用 systemctl start 运行,但不会在树莓派 4 上自动运行
- python - Python 使用 Beautifulsoup 获取特定数据
- c# - Entity Framework Core:包含土耳其语字符
- reactjs - Heroku 配置变量在生产中返回未定义
- angularjs - 在Angular8中动态显示计数
- python - 如何确保代码每小时随机运行一次?
- batch-file - 通过其IP地址以批处理文件打开网站