javascript - 当参数中显式命名元素时,Jquery Data 函数返回未定义的值

标签 javascript jquery

我正在使用 jquery 的“data”函数来存储与 HTML 元素关联的一些信息。当在整个函数中显式引用此元素时,该函数返回未定义,但是当我将该元素绑定(bind)到变量时,该函数工作得很好。

请查看下面的示例:

这个有效(http://jsfiddle.net/sdbA5/):

  $(function() {

    var div = $("#officerBob");

    jQuery.data( div, {
      arrests: 16
    });

    div.click(function(){
       alert("Bob has " + jQuery.data( div ).arrests + " arrests");
    });

});

而这个则没有 ( http://jsfiddle.net/5Y6b8/1/ ):

  $(function() {

    //var div = $("#officerBob");

    jQuery.data( $("#officerBob"), {
      arrests: 16
    });

    $("#officerBob").click(function(){
       alert("Bob has " + jQuery.data( $("#officerBob") ).arrests + " arrests");
    });

});

最佳答案

jQuery.data() 应该在 DOM 节点而不是 jQuery 集合上工作。

更改代码以使用 DOM 节点,它将开始工作

$(function() {

    jQuery.data( $("#officerBob")[0], {
      arrests: 16
    });

    $("#officerBob").click(function(){
       alert("Bob has " + jQuery.data( $("#officerBob")[0] ).arrests + " arrests");
       alert("Bob has " + jQuery.data( this ).arrests + " arrests");
    });

});

现在为什么第一个会起作用?因为它正在处理同一个对象。在第二个中,它是一个新的 jQuery 对象,与分配的第一个对象不同。

关于javascript - 当参数中显式命名元素时,Jquery Data 函数返回未定义的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19284466/

相关文章:

javascript - 原型(prototype)和嵌套返回函数,帮助!

javascript - 在特定 URL 目录 (htaccess) 上运行 javascript 函数

javascript - Ajax:Chrome 扩展:PHP 加载图像问题

javascript - 无法检测到已更改的 ID

javascript - 当屏幕尺寸为 medium 或 small 或 xs 时,文本溢出会弄乱整个表格。它在全屏下工作正常

javascript - 在 FullCalendar dayClick 上触发 jQuery Qtip

javascript - 如何将json url显示为html?

javascript - 打印一个div的内容

java - 重定向/转发我的 JSP 页面

javascript - 离开 Hover 时的事件