无法获取与某个数据ID匹配的元素

时间:2014-05-08 04:31:09

标签: javascript jquery html handlebars.js

当我尝试使用具有相同数据ID的元素时,它不会提供所需的结果。

    $('.edit_reply').live("click", function (event) {
    var id = $(this).attr('data-id');
    $links = $("td[id*="+id+"]");
    alert($links.length);
    }


<tr data-id="{{ replyId }}">

         <td class="span3">
             <i class="icon-trash  delete_reply" data-id="{{ replyId }}"/>
             <i class="icon-edit  edit_reply"  data-id="{{ replyId }}"/>
         </td>
         <td  data-id="{{ replyId }}">

            {{{ reply }}}

        </td>

编辑: data-id就是这样的。

id = e03747d1-3aa0-4224-b8b0-aa6afe713e74

首先我想,因为它可能因为这个字符串很大。 所以我把它设置为id =“e03747d1-3aa0-4224-b8b0-aa6afe713e74” 并检查

    $links = $("td[id*='e03747d1-3aa0-4224-b8b0-aa6afe713e74']");

并且有效。

使用数据('id')会得到相同的结果。

   var id = $(this).data('id');

为什么会这样。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

尝试使用 .data() 获取data-*属性的值:

var id = $(this).data('id');

另请注意,版本live()已弃用1.7,版本1.9已将其删除,您应使用 .on()

答案 1 :(得分:0)

 var id = $(this).attr('data-id');
    $links = $("td[id*='"+id+"']"); //apply '"+id +"'

你也可以通过 data()

来做
var id = $(this).data('id');