通过this question我发现here扩展DOM对象存在缺点。 可以做以下的事情吗?
var tr = $('<tr>');
tr.myCustomProperty = 'Some string value';
我知道jQuery上有一个.data()
方法,但上面的内容似乎更容易使用。我也想知道我的tr
变量是否包含实际的tr DOM元素或任何其他类型的对象。
答案 0 :(得分:3)
var tr = $('tr').eq(0); // get a single TR from the DOM
var actualElement = tr[0]; // get the actual element object from the jQuery object
actualElement.myCustomProperty = 'Some string value';
答案 1 :(得分:2)
jQuery处理名为jQuery object的特殊数组中的DOM对象。您可以将其视为DOM元素的数组,这些元素已扩展为包含所有jQuery方法。
您可以像下面这样访问示例中的DOM元素:
tr[0]
但所有不以这种方式存储数据的理由仍然适用。
正如@Kevin B所提到的,做你正在尝试做的事情(扩展jQuery对象)是不行的,因为你将在每次重新初始化时丢失自定义属性。