这段代码有什么问题?

时间:2009-12-03 08:08:17

标签: javascript function

即时使用以下javascript函数

function showUser(cats1,cats2,nam_cat)
{
        document.getElementById("eq").style.display='';
        document.getElementById('eq').innerHTML = '<TABLE cellpadding="3" class="b bc r w4"><TR class="ln g"> <TD class="l"><B>'+nam_cat+' Schemes</B></TD> <TD><A HREF="#" onclick="AlphaSort(\'scheme_1_month\',\'+cats1+\',\'+cats2+\',\'+nam_cat+\')">1 mth</a></TD> <TD>3 mth</TD> <TD>6 mth</TD> <TD>1 yr</TD> <TD>3 yr</TD> <TD>5 yr</TD> <TD>Inception</TD> <TD>NAV</TD></TR>'+sc_nms+'</Table>';
        document.getElementById("all").style.display='none';
    }
}

但是当我在AlphaSort函数中警告数据时,它会显示名称,即“+ cats1 +”。 我的值正在调用,但在调用这些值时不会传递给相应的函数。我的代码中调用此函数的错误是什么??????

2 个答案:

答案 0 :(得分:2)

嗯,这是我对您提供的代码的测试 - 通过调整使其工作。遗憾的是,你没有包含AlphaSort函数,但假设这个函数中的错误阻止了工作,这可能会让你上路!

<div id="eq"></div>
<div id="all"></div>



<script type="text/javascript">
function showUser(cats1,cats2,nam_cat)
{
    var sc_nms = "You didn't define this variable";
       document.getElementById("eq").style.display='';
       document.getElementById('eq').innerHTML = '<TABLE cellpadding="3" class="b bc r w4"><TR class="ln g"> <TD class="l"><B>'+nam_cat+' Schemes</B></TD> <TD><A HREF="#" onclick="AlphaSort(\'scheme_1_month\',\''+cats1+'\',\''+cats2+'\',\''+nam_cat+'\')">1 mth</a></TD> <TD>3 mth</TD> <TD>6 mth</TD> <TD>1 yr</TD> <TD>3 yr</TD> <TD>5 yr</TD> <TD>Inception</TD> <TD>NAV</TD></TR>'+sc_nms+'</Table>';
       document.getElementById("all").style.display='none';
}

showUser("meow", "purr", "Fluffy");
</script>

答案 1 :(得分:1)

问题在于,当您打算将变量“cats1”的值连接到字符串中时,实际上是将其作为字符串插入,因为用于分隔字符串的前面单引号是转义的。

通过从单引号前面删除\,您将把变量的值而不是字符串本身添加到字符串中。