【问题标题】:javascript : function parameters passing?javascript:函数参数传递?
【发布时间】:2014-07-08 20:00:14
【问题描述】:

我的代码如下:

“数据”是:

[{"DESCRIPTION":"sf","Name":"Tom","Date":"2014-07-08 10:19:29.0","PICTURES":[]},{"DESCRIPTION" :"sf","Name":"Tom","Date":"2014-07-08 10:23:33.0","PICTURES":[]},{"DESCRIPTION":"dfs","Name" :"Tom","Date":"2014-07-08 10:27:20.0","PICTURES":[]},{"DESCRIPTION":"sfd","Name":"Tom","Date" :"2014-07-08 10:31:35.0","PICTURES":[{"PICTURE":"C:\Users\hanlu Feng\workspace\.metadata\.plugins\org.eclipse.wst.server.core \tmp0\ServletHtml\pictures\Tom\2014-07-08-10-31-35\2012042622442667.jpg"},{"PICTURE":"C:\Users\hanlu Feng\workspace\.metadata\.plugins\org .eclipse.wst.server.core\tmp0\ServletHtml\pictures\Tom\2014-07-08-10-31-35\833344_1071288421.jpg"}]}]

//Code 1 

function dynamicReport(data){
    var table = document.getElementById("erroreport");
    if(table.rows.length==0){
        for(var i=0;i<=data.length;i++){
            if(i==0){
            var row = table.insertRow(0);
            var cell = row.insertCell(0);
            cell.innerHTML = titleName;
            cell = row.insertCell(1);
            cell.innerHTML = titleTime;
            cell = row.insertCell(2);
            cell.innerHTML = titleDescription;
            cell = row.insertCell(3);
            cell.innerHTML = titleImages;
            }else{
                var row = table.insertRow(i);
                var cell = row.insertCell(0);
                cell.innerHTML= data[i-1].Name;
                cell = row.insertCell(1);
                cell.innerHTML = data[i-1].Date;
                var description = data[i-1].DESCRIPTION;
                if(description.length>7){
                    description = description.substring(0,7)+"..."
                }
                cell = row.insertCell(2);
                cell.innerHTML=description;
                var userName = data[i-1].Name;
                var reportTime= data[i-1].Date;
                var url = "selectionShow";
                var p ="<p><u><font  size='2' color='blue' onclick='requestPictures("+url+"," +userName+", "+reportTime+")' style='cursor:pointer'>Check Pcitures</font></u></p>";
                cell = row.insertCell(3);
                cell.innerHTML = p;
            }//end else

        }//end for
    }//end if
}

    // code 2

function requestPictures(listUrl,name,time){
    var var1=name;
    var var2 = time;
    $.ajax({
        cache : false,
        type : "POST",
        dataType : "json",
        url : listUrl,
        //data : $("#ajaxFrm").serialize(), 
        data : {command:"images","name":name,"time":time},
        async : false,
        error : function(request) {
            waidAni();
            if(request.status ==202){
                alert(request.responseText);
            }else
            alert("Request Error");
        },
        success : function(data) {
            waidAni();          
            //alert(data);
            window.location.href= data;



        }
    });

}

当我调试它时,有一个错误“Uncaught SyntaxError: Unexpected number”。 我认为错误在代码中:

var p ="<p><u><font  size='2' color='blue' onclick='requestPictures("+url+"," +userName+", "+reportTime+")' style='cursor:pointer'>Check Pcitures</font></u></p>";

试了很多方法,都不行。我使用此链接中的方法: parameters passing

错误依然存在。不知道为什么?

我想创建一个像这样的表:

【问题讨论】:

  • 除非url、userName 和reportTime 都是数字,否则您的内联事件处理程序就是一场灾难。
  • 这段代码很糟糕。为什么你需要那个内联的东西?用在什么地方?
  • 你能发布整个代码吗?您发布的内容很好:jsfiddle.net/QL4L4 语法明智。
  • 你用p做什么?由于您已经在使用 jQuery,您不妨创建对象并添加点击处理程序,然后将其附加到您计划放入的任何容器中。
  • 更新后 - 您的代码仍然没问题(语法方面)。错误的意思是 JS 解析器无法编译您的代码。你有没有像var p = "&lt;p&gt;&lt;u&gt;&lt;font size="2" color='blue'等这样的机会?

标签: javascript parameter-passing


【解决方案1】:

首先,我的解决方案不包括内联样式、字体标签或下划线标签。我建议您将所有这些都放在一个类中。

您应该创建一个对象,绑定点击事件,然后将其附加到单元格,而不是插入纯 html。

var p = $("<p class='picture-link'>Check Pictures</p>");
p.click(function(){requestPictures(url, userName, reportTime);});
$(cell).append(p);

我会这样做。

正如我所说,你必须创建类

Here is a fiddle that demonstrates what I'm doing

我也添加了样式。

.picture-link{
    text-decoration: underline;
    color: blue;
    cursor: pointer;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-02
    • 2016-01-16
    • 1970-01-01
    • 2011-04-16
    • 2012-04-11
    • 2012-10-28
    相关资源
    最近更新 更多