我似乎无法在jQuery创建的对话框中为按钮添加ID。在通过选择器声明对话框后,我可以选择按钮,如下所示:
var buttons = $("#dialog").siblings(".ui-dialog-buttonpane").find("button");
但是当我尝试做的时候:
buttons[0].attr('id', 'someId');
我明白了:
TypeError: Object #<an HTMLButtonElement> has no method 'attr'
有什么建议吗?我没有在jQuery文档中看到任何暗示attr()
不适用于按钮的内容。
答案 0 :(得分:10)
是:
$(buttons[0]).attr('id', 'someId');
在jQuery对象上声明attr()
方法,但是buttons[0]
为您提供了一个标准DOM对象(在本例中为HTMLButtonElement类型)。 jQuery对象是DOM对象的扩充数组,因此索引它们总能为您提供原始的DOM对象。
由于jQuery不向DOM对象本身添加方法,因此必须首先将DOM对象包装在jQuery对象中以访问这些方法。
编辑然后再次......没有必要在所有上使用jQuery 来完成此任务。
buttons[0].id = 'someId';