【问题标题】:Function not returning in javascript函数未在 javascript 中返回
【发布时间】:2017-09-30 16:19:02
【问题描述】:

编辑:用 IF 做了一个新功能......仍然没有返回 -.-。我不明白为什么。

我正在尝试在此函数中返回计算税金、总计和总计 + 税金的结果。我希望将结果打印在 h3 中,如下所示:

 function taxesrepas(option){
var soustot;
var taxes;
var total;
var soustot;



if (option = getelementbyid("spaghetti")) 
    total += 9.62;
    taxes += 0.67;
    soustot +=8.95;

if (option = getelementbyid("lasagne"))
    total += 10.70;
    taxes += 0.75;
    soustot += 9.95;

if (option = getelementbyid("salade"))
    total +=  6.30;  
    taxes += 0.45;
    soustot += 5.95;
if (option =getelementbyid("escargot"))
    total += 5.32;
    taxes += 0.37;
    soustot += 4.95;




 
    document.getElementById("taxes").innerHTML = taxes;
    document.getElementbyid("total").innerHTML = total;
    document.getElementbyid("soustot").innerHTML = soustot;
        
  }
        
<h3 id="choix"></h3>
<h3 id="taxes" onclick= "taxesrepas(this.value)">taxes:</h3>
<h3 id="soustotal" onclick= "taxesrepas(this.value)">Sous-total:</h3>
<h3 id="total"onclick= "taxesrepas(this.value)">Total:</h3>

这个函数应该是根据用户在选择菜单上的选择计算不同价格的函数。问题是由于某种原因它不会返回任何东西。我希望在这些 h3 中打印结果。

这是我希望它看起来像的示例。随着选择菜单的变化,税费和价格也会发生变化。
[URL=https://www.hostingpics.net/viewer.php?id=204967Capturedecran20170930a121531.png][IMG]https://img11.hostingpics.net/pics/204967Capturedecran20170930a121531.png[/IMG][/URL]

【问题讨论】:

  • 没有/使用 value 属性,也不会触发 onchange 事件

  • 您认为this.value 在您的代码中是什么?或者更好,你想要它是什么?
  • 我试图从 if 语句中返回价格,我使用 this.value 因为它是一个数字。我对此真的很陌生,我不太确定如何修复我的功能 -.-,现在我看到我缺少 {} 并更正那个 rn
  • I am trying to return the prices from the if statements 为什么?无论如何,您都不使用函数的返回值。而且,即使函数是正确的,你调用它的方式也是恶意的。这就是我问this.value的原因;因为在您使用的上下文中,this 上没有属性 valueh3 节点没有 value。顺便说一句。带有switch 的函数版本看起来并没有那么糟糕,但是您需要提供更多的上下文 (html 标记) 该代码应该在其中工作。

标签: javascript


【解决方案1】:

value 属性仅在用户输入元素上可用,&lt;h3&gt; 不可用。而change 事件仅在您更改输入元素的值时触发,不适用于&lt;h3&gt;

您可以使用textContent 获取&lt;h3&gt; 元素中的字符串。如果您希望在单击时执行该操作,请使用onclick。所以他们应该是这样的:

<h3 id="taxes" onclick="taxesrepas(this.textContent)">taxes:</h3>

此外,在函数中,您应该将使用taxerpricer 的计算移到设置这些变量的switch 语句之后。

【讨论】:

    【解决方案2】:

    问题是您尝试使用h3 标签,就像它们是输入标签一样。

    onchange 事件仅对&lt;input&gt;&lt;textarea&gt;&lt;select&gt; 等表单元素触发。同样,&lt;h3&gt; 确实有一个 value,因为这也是表单元素的属性。

    【讨论】:

    • 我创建了一个新函数,但我仍然无法将值返回到 h3 标签中。任何人都可以帮助我吗?
    • 请更新您的问题以包含更新后的代码。
    【解决方案3】:

    从您的 h2 标记中删除 onChange,因为它们没有 onchange 事件。 放置一个按钮并使用onclick() 调用您的函数,通过在您的函数中使用getElementById(id) 获取您的h1 值。

    <button onclick="taxesrepas()">
    

    另外,我看到您正在尝试获取期权价值。

    改用select 并检查您的开关盒中的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-30
      • 2019-01-07
      • 1970-01-01
      • 2014-04-01
      • 1970-01-01
      • 2021-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多