单击表行时如何获取data-attr

时间:2014-08-11 15:32:04

标签: jquery html5 html-table custom-data-attribute

我有表,我想获得单击行的“几何”列的数据属性。所以我正在做的是:

var row = jQuery(this).closest("tr");  

上面的代码是获取点击的行,下面的代码是从列几何中获取数据属性,我的数据属性是data-geomet

var text = row.find("geometry").data("geomet");
console.log(text);

我收到了文字undefined。我获得了类几何的text()但无法获取数据属性。

示例HTML:

<td class="geometry" data-geomet="${obj["Details"]}"> details["geometry"]</td></tr>

更新

    %for obj in tableData:
        var details=JSON.parse('${obj["Details"]}');
        var data = "<tr><td> <a href='#gMap' class='fence_data'>${obj['Geofence_Name']}</a></td>";
        data += "<td>${obj['Vehicle_Id']}</td>";
        if(details["type"]===undefined){
            data += '<td>NA</td>';  
        }
        else{
            data += '<td class="type"> '+details["type"]+'</td>';
        }
        if(details["radius"]===undefined){
            data += '<td>NA</td>';  
        }
        else{
            data+='<td class="radius"> '+details["radius"]+'</td>';
        }
        if(details["geometry"]===undefined){
            data += '<td>NA</td></tr>'; 
        }
        else{
            data += '<td class="geometry" data-geomet="${obj["Details"]}"> '+details["geometry"]+'</td></tr>';
        }
       table.append(data)

    %endfor

以下是jsfiddle.net/3vmL5277/2的示例,其中我未定义。

2 个答案:

答案 0 :(得分:2)

以这种格式提供HTML:

<td class="geometry" data-geomet="${obj["Details"]}"> details["geometry"]</td></tr>

此代码适用于您:

// assuming this code is in an event handler
// and 'this' refers to an element within a 'tr' element
var $row = jQuery(this).closest("tr");
var text = $row.find(".geometry").data("geomet");
console.log(text);

答案 1 :(得分:0)

在不知道您的HTML标记是什么样的情况下,这里假设您的准确tds附加到名为“几何”的类

$('.geometry').on('click',function(){
   var myDataAttr = $(this).data('geomet');
   console.log(myDataAttr);
   });

小提琴:http://jsfiddle.net/3vmL5277/

编辑: 根据您的评论,这是一个新示例:

$('tr').on('click',function(){
   var myDataAttr = $(this).find('td.geometry').data('geomet');
   console.log(myDataAttr);
   });

http://jsfiddle.net/3vmL5277/3/