Javascript 如何在表格行中生成动态按钮并单击按钮打开新页面
我实际上需要从服务url生成动态表,然后生成动态表 如何使用click事件在每个表行上生成动态按钮。 生成按钮后,我们如何将单击事件分配给按钮,我的意思是假设在一个表中有四列,如日期、id号、名称、位置,在单击每列或与该单元格相关的列时,它必须重定向到新页面。 或 如果单击一个表行,其中有4列,如日期、id号、名称、位置,则单击事件将以日期为参数,并单击事件函数,然后必须转到下一页/重定向Javascript 如何在表格行中生成动态按钮并单击按钮打开新页面,javascript,jquery,html,cordova,Javascript,Jquery,Html,Cordova,我实际上需要从服务url生成动态表,然后生成动态表 如何使用click事件在每个表行上生成动态按钮。 生成按钮后,我们如何将单击事件分配给按钮,我的意思是假设在一个表中有四列,如日期、id号、名称、位置,在单击每列或与该单元格相关的列时,它必须重定向到新页面。 或 如果单击一个表行,其中有4列,如日期、id号、名称、位置,则单击事件将以日期为参数,并单击事件函数,然后必须转到下一页/重定向 $('#btn_Day').click(function () { var ex = document
$('#btn_Day').click(function () {
var ex = document.getElementById("dpp_info");
var clOptions = ex.options[ex.selectedIndex].value;
var clOptions1 = ex.options[ex.selectedIndex].text;
var dt = todaydate;
var dt1 = todaydate;
$.ajax({
type: 'GET',
url: xxxxx.xxxxx.xxxxx,
data: frmDate_=" + dt + "&toDate_=" + dt1 + "",
success: function (resp) {
var Location = resp;
var tr;
for (var i = 0; i < Location.length; i++) {
tr = tr + "<tr>";
tr = tr + "<td style='height:20px' align='left'>" + Location[i].Name + "</td>";
tr = tr + "<td style='height:20px' align='left'>" + Location[i].Date + "</td>";
tr = tr + "<td style='height:20px' align='left'>" + Location[i].IdNum + "</td>";
tr = tr + "</tr>";
};
document.getElementById('Wise').innerHTML = "<table class='r'>" + "<tr><thead ><th style='height:20px'>Location</th>"
+ "<th style='height:20px'>Date</th>" + "<th style='height:20px'>Id Num</th>" + "</tr></thead>"
+ tr +
"<tr></tr>" +
"</table>";
document.getElementById('Wise').childNodes[0].nodeValue = null;
},
error: function (e) {
window.plugins.toast.showLongBottom("Please Enable your Internet connection");
}
});
});
现在,在图像中,如果你看到有四列,假设我点击idnumb,那么与该特定编号相关的记录必须显示在单独的页面中
寻求帮助 在进一步讨论之后,关键是只使用处理程序并使用属性传递任何值。你可以在这里看到小提琴
我不确定我是否完全理解你想做什么,但听起来你想添加处理程序日期、id号、名称和位置。您是否可以向列/行中添加一个类以及所需的任何其他属性,如data name='number'。一旦你将这个添加到dom中,你就可以为这个类添加处理程序了?@JamesDale请检查这个问题,如果我点击22,它会显示IdNum为22的其他记录。检查这个,看看结果是否会记录在控制台中。嘿,我已经更新了JSFIDLE。将元素添加到dom后,需要添加处理程序
$('.button-click').off();
$('.button-click').on('click', function () {
// navigate to new page
// console.log('button click')
// what you could do here is get the serialnumber which is an attribute on the button
var id = $(this).attr('data-id') // as long as this is unique this should always work
var filteredResults = results.filter(function (result) {
if (result.SerialNumber.toString() === id.toString()) {
return result;
}
});
var selectedRowValues = filteredResults[0];
// this will contain all the values for that row
console.log(selectedRowValues)
// var dataValue = $(this).attr('data-url'); // dont't need this any more
window.open(selectedRowValues.Url)
});