![](/img/trans.png)
[英]Could you please help me to highlight the selected HTML table row created dynamically through java script
[英]How to put an onclick event for a HTML table row created dynamically through java script.?
我是javascript新手。
有人可以幫助我在通過javascript創建的HTML表格行點擊時實現onclick
事件嗎?
請注意,我正在使用innerHTML
在表單元格中插入數據。 以下是我嘗試過的代碼片段。
Java腳本功能:
function addRow(msg)
{
var table = document.getElementById("NotesFinancialSummary");
var finSumArr1 = msg.split("^");
var length = finSumArr1.length-1;
alert("length"+ length);
for(var i=1; i<finSumArr1.length; i++)
{
var row = table.insertRow(-1);
var rowValues1 = finSumArr1[i].split("|");
for(var k=0;k<=10;k++)
{
var cell1 = row.insertCell(k);
var element1 = rowValues1[k];
cell1.innerHTML = element1;
}
}
for(var i=1; i<rowCount; i++)
{
for(var k=0;k<=10;k++)
{
document.getElementById("NotesFinancialSummary").rows[i].cells[k].addEventListener("click", function(){enableProfileDiv()}, false);
}
}
}
jsp中的HTML表代碼:
<TABLE id="NotesFinancialSummary" width="800px" border="1" align="left" >
<tr >
<th>Symbol</th>
<th>Claimant</th>
<th>MJC</th>
<th>S</th>
<th>Type</th>
<th>Indemnity Resv</th>
<th>Indemnity Paid</th>
<th>Medical Resv</th>
<th>Medical Paid</th>
<th>Legal Resv</th>
<th>Legal Paid</th>
</tr>
<tr>
<td>
</td>
<TD> </TD>
<TD> </TD>
<TD> </TD>
<TD> </TD>
<TD> </TD>
<TD> </TD>
<TD> </TD>
<TD> </TD>
<TD> </TD>
<TD> </TD>
</tr>
</table>
<table id="table"></table>
$("#table").append("<tr><td>Hi there</td></tr>");
$("#table").on( "click", "tr", function(){
// do something
alert( $(this).children("td:first").text() );
});
每當click
事件上升到<table id="table">
,都會調用此函數(無論<tr>
是動態插入的還是硬編碼的)。
這將需要jQuery庫
一種方法是使用document.createElement
而不是做:
yourParentElement.innerHTML = "<tr>Something</tr>";
你可以做
var tr = document.createElement("tr");
tr.innerHTML = "Something";
tr.onclick = function() {
//code to be executed onclick
};
yourParentElement.appendChild(tr);
另一種方法是使用id
( 僅當您執行一次此操作時,才不需要重復的ID):
yourParentElement.innerHTML = "<tr id='someId'>Something</tr>";
document.getElementById("someId").onclick = function() { //fetch the element and set the event
}
您可以在此處閱讀有關事件的更多信息,但只有這樣,您才能知道onclick
只會設置一個功能。 如果您想要更好的解決方案,可以使用諸如addEventListener之類的東西,但是它不是跨瀏覽器的,因此您可能需要閱讀它。
最后,如果您想在每個 tr
上設置一個事件,則可以使用:
var trs = document.getElementByTagName("tr"); //this returns an array of trs
//loop through the tr array and set the event
使用innerHTML插入<tr>
,為其創建click事件監聽器。
document.getElementById("the new id of your tr").addEventListener("click", function() {
what you want to do on click;
});
像這樣的東西: http : //jsfiddle.net/gnBtr/
var startEl = document.getElementById('start');
var containerEl = document.getElementById('container');
var inner = '<div id="content" style = "background: pink; padding:20px;" > click on me </div>'
// Function to change the content of containerEl
function modifyContents() {
containerEl.innerHTML = inner;
var contentEl = document.getElementById('content');
contentEl.addEventListener("click", handleClickOnContents, false);
}
// listenting to clikc on element created via innerHTML
function handleClickOnContents() {
alert("you clicked on a div that was dynamically created");
}
// add event listeners
startEl.addEventListener("click", modifyContents, false);
看看這個:
$('#your_table_id tbody').on('click', 'tr', function (e) {
$('td', this).css('background-color', 'yellow');
} );
CSS:
tr:hover td{
background-color: lightsteelblue !important;
}
它對我來說很好用,特別是當我使用jQuery dataTable分頁時。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.