【问题标题】:Trying to pass different variables through onclick function () brackets试图通过onclick函数()括号传递不同的变量
【发布时间】:2013-06-02 18:19:49
【问题描述】:

我试图通过一个函数传递几个不同的情况

<div id="button1" class="button" onclick="pop(case1)">popup a</div>

然后我想在我的函数中创建不同的案例

function pop(a){
    if (a='case1') {var mytext = "you pressed the popup case1"; var myclass=a;}
    else if (a='case2'){var mytext = "you pressed the popup case2"; var myclass=a;}
    else if (a='case3'){var mytext = "you pressed the popup case3"; var myclass=a;}

var p1 = document.createElement("div");
    p1.classname =myclass;
    p1.innerHTML=mytext;
    document.body.appendChild(p1);
}

这是我为它制作的小提琴 http://jsfiddle.net/alexnode/WqsNJ/1/ 我应该如何正确创建条件 if else ?目前我总是会弹出case1。

【问题讨论】:

    标签: javascript function if-statement conditional


    【解决方案1】:

    问题是您使用= 进行分配,而不是使用== 进行检查,请将您的= 更改为==

    http://jsfiddle.net/WqsNJ/2/

    if (a=='case1') {var mytext = "you pressed the popup case1"; var myclass=a;}
    else if (a=='case2'){var mytext = "you pressed the popup case2"; var myclass=a;}
    else if (a=='case3'){var mytext = "you pressed the popup case3"; var myclass=a;}
    

    【讨论】:

    • 非常感谢,最糟糕的是我以前读过!
    • 没问题。另外,我会避免在 DOM 中使用 onclicks。您可以在 javascript 本身中创建侦听器。如果使用jquery,您可以执行$(".button").on("click", function() { ... }) 之类的操作,并且在其中(...),您可以从.class 中获取实际使用this 点击的数据。如果您感兴趣,请参阅 jQuery.on() documentation
    • 我试试看,看起来比较整齐。有没有其他不好的原因。
    • 应该将您的逻辑与您的标记分开,这样可以更容易地跟踪事物或在未来进行更改。
    • Here 是使用 jQuery 的代码示例。不过,我注意到有关您的代码的一件事。 Tt 每次单击都会创建一个新的 div,因此您最终可能会在固定位置有许多相同 div 的重复项。如果您想避免这种情况,请查看here
    【解决方案2】:

    为了在 JavaScript 中比较字符串,您需要使用 等于运算符 (==) 而不是 等号 (=)

    所以正确的代码应该是

    function pop(a){
        if (a=='case1') {var mytext = "you pressed the popup case1"; var myclass=a;}
        else if (a=='case2'){var mytext = "you pressed the popup case2"; var myclass=a;}
        else if (a=='case3'){var mytext = "you pressed the popup case3"; var myclass=a;}
    
    var p1 = document.createElement("div");
        p1.classname =myclass;
        p1.innerHTML=mytext;
        document.body.appendChild(p1);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-22
      • 2012-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-28
      • 2018-01-12
      • 1970-01-01
      相关资源
      最近更新 更多