我有表格数据,如下所示,其中Dispute Number有一个链接。
我使用下面的函数
生成了html代码getMessage(result){
for (var j = 0; j < result.invocationResult.resultSet.length; j++) {
var tmp = "<tr>";
var resSet = result.invocationResult.resultSet[j];
for(res in resSet){
if(res=="DISP_NUMBER")
var ab = resSet.DISP_NUMBER;
tmp += "<td><a href="+"#"+" data-role="+" button"+" id="+" button-mainpage" +" onclick="+ " changeToSomePage("+ab+");>"+ab +"</a></td>";
$("#mytable").append(tmp+"</tr>");
当用户点击争议编号链接时,将调用以下js函数。 我将争议号码与变量&#39; ab&#39;一起传递。当我在函数changeToSomePage(ab)中提醒此值时, 它有时工作,有时它给出错误的数字。
function changeToSomePage(ab) {
alert(ab);
$('#pagePort').load("pages/disputedetails.html");
}
您认为上述代码有什么问题吗?这是从链接中检索价值的正确选择吗?点击后将其发送给JS函数?
谢谢......约翰逊
答案 0 :(得分:0)
看起来ab
是一个字符串。你需要用引号包装它。
"<td><a href="+"#"+" data-role="+" button"+" id="+" button-mainpage" +" onclick="+ " changeToSomePage(\""+ab+"\");>"+ab +"</a></td>";
当然,内联处理程序并不是最好的方法。您可以使用事件委派:在表本身上绑定单个onclick处理程序。
$('#mytable').on('click', '.change-to-some-page', function() {
var num = $(this).data('num');
});
生成行时。
tmp += '<td><a href="#" data-role="button" class="change-to-some-page" ' +
'data-num="' + ab + '">' +ab +'</a></td>';
答案 1 :(得分:0)
重写此
"<td><a href="+"#"+" data-role="+" button"+" id="+" button-mainpage" +" onclick="+ " changeToSomePage("+ab+");>"+ab +"</a></td>"
使用双引号和单引号 - 更容易阅读。并使用j值创建唯一的ID
"<td><a href='#' data-role='button' id='button-mainpage-" + j + "' onclick=' changeToSomePage("+ab+");'>"+ab +"</a></td>"