我可以在jquery.data()调用中使用$(this)吗?

时间:2012-06-01 16:14:25

标签: jquery jquery-selectors

我想在该元素的jQuery.data()集合中存储元素的默认值。因为我不能这样做......

$("#myElement").data('defaultValue', $(this).html());

...因为$(this)没有给我#myElement的参考,最有效的方法是什么?我试图避免像这样两次选择元素:

$("#myElement").data('defaultValue', $("#myElement").html());

5 个答案:

答案 0 :(得分:2)

除了将jQuery对象保存在临时变量中之外,没有理智的方式:

var $element = $("#myElement");
$element.data('defaultValue', $element.html()); 

一个只有一个表达的替代,但恕我直言的情况要糟糕得多:

$("#myElement").each(function() { $(this).data('defaultValue', $(this).html()); });

答案 1 :(得分:1)

Ehhh。

你可以试着破解它:

$("#myElement").each(function(){$(this).data('defaultValue', $(this).html());});

UGLY

或者像其他帖子一样:

var $element = $("#myElement");
$element.data('defaultValue', $element.html());

答案 2 :(得分:0)

var el = $("#myElement");
el.data('defaultValue', el.html());

答案 3 :(得分:0)

var myElement = $("#myElement");
myElement.data('defaultValue', myElement.html());

答案 4 :(得分:0)

如果你是一个表演怪胎,你可以通过保存对#myElement的引用来节省纳秒:

var $myElement = $("#myElement");
$myElement.data('defaultValue', $myElement.html());