【发布时间】:2018-08-07 22:06:01
【问题描述】:
不确定标题是否有意义,但我想通过点击事件发送数据,此点击事件将从预设的 var(在本例中为 product101)获取数据,因为此 var 以 JSON 格式格式化,我无法似乎检索数据,它总是返回一个未定义的。由于 var 是一个对象,但是当我使用数据集时,var 是一个字符串,对吗?
// inside a loop
<div class="container">
<script> var product<?=$id?> = {"category":"cars"}</script>
<div data-my-product="product<?=$id?>">
//all the product stuff
</div>
</div>
//located in the footer
$('[data-my-product]').click(function(){
//demo
var pro = $(this).data('my-product');
alert(pro.category);//returns undefined
})
当我点击产品时,它会返回一条“未定义”的警报消息。
请注意,产品是在循环中生成的。
【问题讨论】:
-
您的数据属性仅包含字符串“product101”。为了从
.data()获取该对象,您必须将 JSON 文本直接放入属性值中。 -
是的,我很遗憾地知道,由于围绕此设置的几个事件,它需要单独设置 var/obj。
-
$(this).data('my-product') === "product101"。不等于"product101"的值,等于到"product101"。 -
属性或数据,同样的问题
-
@deepakthomas no
.data()是正确的。 OP 你不能做你的代码试图做的事情。 HTML 解析器不知道 JavaScript 上下文。
标签: javascript jquery