3

搜索谷歌只给了我 jQuery 的 .data() 函数的例子。

但是,我的问题是使用 jQuery 的“this”,例如:

$('#opener').live('click', function() {
var x = this.name;
var y = this.title;

它从 中获取值<a style='cursor:pointer' id='opener' name='$x' title='$y'>,它包括 PHP 变量,但在我的问题中并不重要。

现在,假设我想摆脱在 HTML 元素中存储额外数据并通过使用 data- 属性将其正确存储在 HTML5 中的这种骇人听闻的尝试。所以,锚看起来像:

<a style='cursor:pointer' id='opener' data-x='$x' data-y='$y'>

那么我如何能够像上面那样在 jQuery 中使用“this”并让它获取数据?我已经尝试过this.data('x')this.data('y')但这不起作用,这就是我在这个主题上找到的全部内容。

4

1 回答 1

10

你需要使用

$(this).data('x')

在回调方法内部,this引用了 dom 对象,但.data()方法是在元素的 jQuery 对象包装器中定义的。因此,您需要使用 jQuery 包装 dom 元素$(this)

于 2013-06-24T02:44:33.797 回答