2012-03-01 44 views
0

我在按鈕單擊上創建表並且工作得很好。然後我有一個熱鍵來爲這些表添加額外的行。我需要獲取光標所在的表的父ID,但它一直給我未定義。我可以得到父母的ID確定,但是當我把表放在它給我不明確。任何幫助,將不勝感激jquery獲得最接近按鍵的表的ID

$(document).ready(function() { 
    $("#divNarrative1").keypress(function(e){  
     alert(e.target.id); 
     var msgId = $(this).closest('table').attr('id'); 
     alert(msgId); 
    }); 

}); 
+0

是否說表是未定義的('$(this).closest('table')is undefined')還是id undefined('msgId is undefined')?你的HTML是什麼? – 2012-03-01 19:23:24

+0

請給我們一些標記,看看... – Gabe 2012-03-01 19:23:36

+3

什麼是HTML的樣子?我的猜測是,#divNarrative1不在表格內,因此「最接近」不是遍歷DOM的適當方式。 – tvanfosson 2012-03-01 19:24:23

回答

1

我相信table裏面divNarrative1。在keypressthis將指向divNarrative1並呼籲closest就不會給你所需的table。您應該使用e.target而不是this

$(document).ready(function() { 
    $("#divNarrative1").keypress(function(e){  
     alert(e.target.id); 
     var msgId = $(e.target).closest('table').attr('id'); 
     alert(msgId); 
    }); 

}); 

更新:通過OP

繼承人創建表

 // Insert HTML table 
function InsertTable() { 
    var div = document.getElementById('divNarrative1'); // table reference 

    div.focus(); 

    document.getElementById("hfProjectBoxNumber").value = Number(document.getElementById("hfProjectBoxNumber").value)+ 1; 
    document.getElementById("hfBillTextNumber").value = Number(document.getElementById("hfBillTextNumber").value)+ 1; 

    var projdiv = "Projectbox" + document.getElementById("hfProjectBoxNumber").value 

    //create table 
    var tbl = document.createElement('table'); 
    tbl.id = projdiv; 
    tbl.width = "570px"; 
    tbl.setAttribute("table-layout", "fixed"); 
    tbl.setAttribute("border", "1"); 
    tbl.setAttribute("height", "50px"); 
    tbl.border = 1; 

    //create header row 
    var oRow = tbl.insertRow(-1); 
    var oCell = oRow.insertCell(-1); 
    oCell.width = "570px"; 
    oCell.setAttribute("colspan", "2"); 
    oCell.setAttribute("align", "center"); 
    oCell.innerHTML = projdiv; 

    //create coumns 
    var oRow = tbl.insertRow(-1); 
    var oCell = oRow.insertCell(-1); 
    oCell.width = "430px"; 
    oCell.innerHTML = "DESCRIPTION"; 
    oCell.setAttribute("align", "center"); 

    var oCell2 = oRow.insertCell(-1); 
    oCell2.width = "140px"; 
    oCell2.innerHTML = "AMOUNT"; 
    oCell.setAttribute("align", "center"); 
    div.appendChild(tbl); 
    return false; 
} 

繼承人的HTML頁面

012上的JS
</div> 
     <asp:Button ID="btnEditNarr" runat="server" Text="Edit Narrative" /> 
     <input type="button" value="Clear all Content" onclick="clearBilltextbox();"/> 
     <input type="button" value="Save Content" onclick="getallcontent();"/> 

</asp:Panel> 
+0

繼承人在按鈕上創建表的js點擊 – user1243474 2012-03-01 19:32:34

+0

看看你的更新清楚'table'是在'div'裏面,所以我的回答是正確的。嘗試一下。 – ShankarSangoli 2012-03-01 19:39:30

+0

我試過了,仍然沒有定義.... – user1243474 2012-03-01 19:48:56

相關問題