javascript
  • function
  • 2009-12-03 49 views 0 likes 
    0

    即时通讯使用以下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'; 
        } 
    } 
    

    但当IAM在AlphaSort功能提醒数据则显示姓名,因为它是即“+ cats1 +”。 我的值正在调用,但在调用这些值时不会传递给相应的函数。在调用此函数的代码中出现错误是什么?

    回答

    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

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

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

    +2

    我会更进一步说当前\'很好,但需要一个额外的' - 否则来自cats1的字符串将被视为这个输出中的变量名称...即\ ''+ cats1 +'\' – Fenton 2009-12-03 08:17:52

    +1

    使用带语法高亮显示的编辑器会很快显示出这种错误。 – 2009-12-03 08:22:30

    +0

    绝对正确,我的回答很仓促。 – 2009-12-03 08:23:53

    相关问题