2014-05-02 91 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的:/ –