2010-09-03 123 views
4

我似乎无法将ID添加到jQuery创建的对话框中的按钮。我可以选择的按钮通过选择被宣布对话框后如下:如何使用jQuery将元素添加到元素?

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

我同意@jigfox - 目前您有13个问题,并且没有接受任何*他们的答案。 – Tomalak 2010-09-03 15:40:35

+0

抱歉 - 我总是有点忘记。现在修复它。 – subrama6 2010-09-05 11:58:10

回答

10

是:

$(buttons[0]).attr('id', 'someId'); 

attr()方法声明jQuery的对象,但buttons[0]为您提供了一个标准的DOM对象(类型HTMLButtonElement在这种情况下)。 jQuery对象是DOM对象的增广数组,因此索引到它们总是会给你原始的DOM对象。

由于jQuery不向DOM对象本身添加方法,因此必须先将DOM对象包装在jQuery对象中以访问这些方法。

编辑再然后......就没有必要使用jQuery 在所有这个任务。

buttons[0].id = 'someId'; 
+0

+1不能简单。 – GenericTypeTea 2010-09-03 15:34:42

+0

非常有意义 - 很好的解释。非常感谢 – subrama6 2010-09-03 15:40:59

+0

@GenericTypeTea:哦,是的,有一个更简单的方法。看我的编辑。 – Tomalak 2010-09-03 15:47:15

相关问题