我想选择带有以字符串开头的属性名称(键)的元素。使用案例:jQuery UI dialog创建按钮,其唯一唯一标识符是伪随机自定义属性,其序列值为jQuery1288273859637="40"
我想基于属性的名称是jQuery *(以jQuery开头)这一事实进行选择
答案 0 :(得分:2)
只有我认为可以考虑在.filter()
中测试每个DOM元素的各个键。
这将是非常低效的,但如果你真的想要它,它可能看起来像这样:
$('body *').filter(function() {
for( var k in this ) {
if( this.hasOwnProperty(k) && k.indexOf( "jQuery" ) === 0 ) {
return true;
}
}
return false;
});
这将循环遍历<body>
中的所有元素,然后循环遍历每个1}}的键/值属性,测试每个键以查看它是否以"jQuery"
开头。如果是,则返回true
,并且循环被破坏。如果没有,则在所有属性都经过测试后返回false
。
我会找到另一种方式。说真的,不要这样做。
答案 1 :(得分:0)
获取对话框的引用,然后使用css选择器查找按钮。 firebug(或谷歌浏览器开发人员工具)对于确定要查找的内容非常有用。
答案 2 :(得分:0)
您正在查看的属性是jQuery expando ...将“jQuery”基于当前时间后的数字以及每次重新加载页面时的更改({{3} }&amp; ref1)。
最好在基础HTML中定位一个类。例如,jQuery UI对话框应具有此基本HTML(ref2):
<div class="ui-dialog ui-widget ui-widget-content ui-corner-all ui-draggable ui-resizable">
<div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix">
<span id="ui-dialog-title-dialog" class="ui-dialog-title">Dialog title</span>
<a class="ui-dialog-titlebar-close ui-corner-all" href="#"><span class="ui-icon ui-icon-closethick">close</span></a>
</div>
<div style="height: 200px; min-height: 109px; width: auto;" class="ui-dialog-content ui-widget-content" id="dialog">
<p>Dialog content goes here.</p>
</div>
</div>
找到您要定位的ID或类,改为使用它!
如果您需要在对话框中定位按钮,请使用以下内容:
$('.ui-dialog .ui-button:contains("Cancel")')