【问题标题】:jQuery data() returns undefined constantlyjQuery data() 不断返回 undefined
【发布时间】:2023-03-11 15:10:01
【问题描述】:

下面是 HTML 和下面的 jQuery。如果我返回 attr("data-conn");它会提醒正确的值,但使用 .data("conn") 不会。为什么?

<span>
    <!-- ... -->
    <a href="link.html" class="textbutton"  data-conn="text3">
        <img src="/images/image.png">
    </a>
</span>
<span style="width:610px;height:200px;float:right; background-color:#bcbcbc;font-size:15px;line-height:15px;">
    <div class="texts" id="text1">Initial Header</div>
    <span class="texts" id="text2" style="display:none;">Text for another one</span>
    <span class="texts" id="text3" style="display:none;">Content Text</span>
</span>

<script type="text/javascript">
    $(".textbutton").click(function(){
        var link = $(this).data("conn");
        alert(link);
        $(".texts").fadeOut(1000, function() {
            $("#text2").fadeIn(1000);
        });
        return false;
    });
</script>

【问题讨论】:

  • 工作正常:jsfiddle.net/xgwBJ
  • 您使用的是哪个版本的 jQuery 文件?
  • 你用的是什么浏览器? (并且您使用的是 html5 文档类型吗?不确定这是否有任何效果)
  • 我想我使用的是旧版本的 jQuery 感谢您指出我什至没有想到它

标签: javascript jquery html css


【解决方案1】:

您尝试的方式使用最新版本的 jQuery 可以正常工作:

var link = $(this).data("conn");

这是一个有效的demo

你也可以这样试试

var link = $(this).attr("data-conn");

【讨论】:

  • 这就像我说的那样有效,但是为什么要这样做而不是我尝试的呢?
  • 他的方式应该可以正常工作。见api.jquery.com/data/#data-html5
  • 查看元素数据集对象可能没有包含。
  • .data() 一起工作对我来说很好:jsFiddle
  • 我也有同样的问题,是 jquery-migrate 重新定义 data()。
猜你喜欢
  • 2017-12-11
  • 2019-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
相关资源
最近更新 更多