You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jQuery .data()返回undefined问题求助,多种尝试方案无效

问题分析与解决方案

嘿Richard,我一眼就看到问题所在啦!你的所有jQuery代码都是在尝试获取按钮元素的data-button-type属性,但你看你的HTML:这个属性根本不在按钮上,而是在下面的.grid-item元素里😅。另外你之前的代码里还有个小笔误——$('buttn')把button拼错了,少了个字母o,这也会导致代码失效。

下面分两种常见的需求场景给你解决方案:

场景1:你本来想给按钮添加data-button-type属性

如果你的目标是点击按钮时直接获取按钮自身的data-button-type,那先修改你的HTML,把属性加到按钮上:

<div class="btn-group">
  <button type="button" class="btn btn-default" data-button-type="interior">1</button>
  <button type="button" class="btn btn-default" data-button-type="exterior">3</button>
</div>
<div class="grid-item grid-item-double-height item-1" data-button-type="interior">
  <a href="#">
    <img src="img/lazyload-ph.png" data-src="img/slurp-004.jpg" class="img-responsive lazyload"/>
  </a>
</div>

然后用这段简洁的jQuery代码就能正常获取属性值了:

$(".btn-group").on('click', 'button', function() {
  var push = $(this).data("button-type");
  alert(push);
});

场景2:你想点击按钮后,获取对应.grid-item的data-button-type

如果你的需求是按钮和.grid-item关联(比如按钮显示的数字1对应.item-1),那可以通过按钮的标识找到对应的网格项,再获取它的属性:

$(".btn-group").on('click', 'button', function() {
  // 从按钮的文本内容里拿到数字(比如按钮上的"1"、"3")
  var btnIdentifier = $(this).text().trim();
  // 找到对应的grid-item元素
  var targetGridItem = $(".item-" + btnIdentifier);
  // 获取目标元素的data-button-type值
  var push = targetGridItem.data("button-type");
  alert(push);
});

这种方式不需要修改按钮的HTML,只要保持按钮文本和网格项的item-*类名对应就行。

内容的提问来源于stack exchange,提问作者belotte

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 09:02:36