Javascript 获取具有类似ID的元素';他正在使用jQuery

Javascript 获取具有类似ID的元素';他正在使用jQuery,javascript,jquery,jquery-dialog,Javascript,Jquery,Jquery Dialog,我有带地址的div框,每个地址都有自己的按钮,这个按钮应该会打开一个对话框,你可以在其中编辑特定的地址 按钮ID总是编辑地址(编号),编号是数据库的ID。因此,数字不像1,2,3,但可能是12,35,122,显示的对话框具有ID对话框形式(数字) 那么,如何实现一些事情呢?首先获取现有ID的所有结束编号,然后进行循环 $( "#dialog-form_$i" ).dialog({ autoOpen: false, height: 300, width: 390,

我有带地址的div框,每个地址都有自己的按钮,这个按钮应该会打开一个对话框,你可以在其中编辑特定的地址

按钮ID总是编辑地址(编号),编号是数据库的ID。因此,数字不像1,2,3,但可能是12,35,122,显示的对话框具有ID对话框形式(数字)

那么,如何实现一些事情呢?首先获取现有ID的所有结束编号,然后进行循环

$( "#dialog-form_$i" ).dialog({
    autoOpen: false,
    height: 300,
    width: 390,
    modal: true
    });

$('#edit_address_$i').button().click(function() {
    $('#dialog-form_$i').dialog('open');
}); 
我知道这段代码不是那样工作的,但如何实现它呢?

使用jQuery的:

下面是属性选择器运算符的简要说明:

=  is exactly equal
!= is not equal
^= starts with
$= ends with
*= contains

对于id以“edit\u address\u”开头的每个元素,绑定一个click事件,该事件将通过提取您正在谈论的实际数据库id打开相应的对话框

$("[id^='edit_address_']").click(function() {
    var id = this.id.split('_')[2];
    $('#dialog-form_' + id).dialog('open');
}).button();
注意:根据元素的类型,您可以将标记名作为初始选择器的前缀,这样会更快。例如:
“输入[id^='edit\u address']”
“按钮[id^='edit\u address']”


由于ID是动态生成的,因此向所有控件(如“edit_address”)添加一个公共类名肯定要简单得多,然后选择器就是类名。为您需要使用的唯一标识符(如数字ID)添加另一个简单的数据属性,然后将解析属性的需要降至最低

<button id="edit_address_$i" class="edit_address" data-id="$i">Text</button>

$('.edit_address').click(function(){
    $('#dialog-form_' + $(this).data('id') ).dialog('open');
})
文本
$('.edit_address')。单击(函数(){
$('#dialog-form'+$(this).data('id')).dialog('open');
})

这是一个非常好的解决方案!我喜欢。Thanksyup-一旦你得到了分类的概念,而不是寻找特定的项目,它使得很多jQuery编码变得非常简单。没有办法提供从单击处理程序到对话框的id匹配
<button id="edit_address_$i" class="edit_address" data-id="$i">Text</button>

$('.edit_address').click(function(){
    $('#dialog-form_' + $(this).data('id') ).dialog('open');
})