将值从链接传递给JS文件时发出问题

时间:2014-08-23 17:32:59

标签: javascript jquery ibm-mobilefirst

我有表格数据,如下所示,其中Dispute Number有一个链接。

enter image description here

我使用下面的函数

生成了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函数?

谢谢......约翰逊

2 个答案:

答案 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>"