jquery返回对象而不是id

时间:2018-05-24 18:34:42

标签: javascript jquery

我有

<li class="live_item" data-id="1">
                        <span class="number">1</span>
                        <i class="fa fa-television" aria-hidden="true"></i>
                        <label>Test</label>
                  </li>

这个

$(".live_item").on("click",function(){

    alert($($(this).data("id")));
});

你能告诉我为什么重新调整一个物体而不是数字1吗?我做错了什么?

2 个答案:

答案 0 :(得分:2)

删除$方法中的额外alert()符号...

&#13;
&#13;
$(".live_item").on("click",function() {
    alert($(this).data("id"));
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<li class="live_item" data-id="1">
    <span class="number">1</span>
    <i class="fa fa-television" aria-hidden="true"></i>
    <label>Test</label>
</li>
&#13;
&#13;
&#13;

答案 1 :(得分:2)

问题是您将$(this).data('id')的返回值传递给$ jQuery函数。这会将值转换为jQuery对象。这就是警报显示[object Object]而不是数据id值的原因。

&#13;
&#13;
$(".live_item").on("click",function() {
    alert($(this).data("id"));
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
  <li class="live_item" data-id="1">
    <span class="number">1</span>
    <i class="fa fa-television" aria-hidden="true"></i>
    <label>Test</label>
  </li>
</ul>
&#13;
&#13;
&#13;