2014-05-02 49 views
0

我有一个HTML5文档类型的网页,我试图用我的表中的<tr>元数据属性,像这样:HTML5数据 - *属性未按预期

while($res = mysql_fetch_assoc($U)){ 
    if($c == "table-row-dark"){ 
     $c = "table-row-light"; 
    }else{ 
     $c = "table-row-dark"; 
    } 
    echo "<tr data-id='".$res['rid']."' class='".$c."'>" 
    ."<td>".$res['fname']." ".$res['lname']."</td>" 
    ."<td>".$res['company']."</td>" 
    ."<td>".$res['rcity'].", ".$res['rstate']."</td>" 
    ."<td>".$res['rphone']."</td>" 
    ."</tr>"; 
} 

以下是我的Javascript为每行添加一个onclick监听器,然后提醒data-id属性的值。

function addEvt(elem,eventType,handler){ 
    if (elem.addEventListener){ 
     elem.addEventListener (eventType,handler,false); 
    } 
    else if (elem.attachEvent){ 
     elem.attachEvent ('on'+eventType,handler); 
    } 
} 

if(getElm('kickbacktbl')){ 
    var kbRows = getElm('kickbacktbl').getElementsByTagName('tr'); 
    var kbrcount = kbRows.length; 
    while(kbrcount--){ 
     if(kbRows[kbrcount]){ 
      var row = kbRows[kbrcount]; 
      addEvt(row,"click",function(e){ 
       cancelDefaultAction(e ? e:window.event); 
       var did = row.getAttribute('data-id'); 
       var url = "kickback.php?id="+did; 
       window.alert(url); 
       //openShit(url); 
       return false; 
      }); 
     } 
    } 
} 

的问题是,当url被提醒,它示出了属性作为null的值。我究竟做错了什么?如何在保持跨浏览器兼容性的同时修复它?

+2

当您检查HTML时,您在data-id属性中看到了什么? – Jessica

+1

另外,如果你打算使用双引号为你的PHP字符串和html单曲,至少使用变量插值! 'echo'“;'等等 – Jessica

+0

@Jessica''tr data-id ='51105'class =' table-row-light kick-back-row'>' –

回答

2

尝试改变row.getAttribute('data-id');this.getAttribute('data-id');

0

你得到的标记名的元素,然后您尝试使用jQuery的功能他们。

this.getAttribute('data-id'); 

是要走的路。

+0

没有一个是jQuery的:/ –