开发者问题收集

无法在锚点内设置 span 的内容

2020-03-02
59

我有这个字段。

<input type="text" name="amount" id="amount" value="20.00">

我有这个链接。

<a target='_blank' href="https://PayPal.me/MyAccount/<span id='myspan'>0.00</span>">click here</a>

当我尝试将金额值($20.00)插入 myspan 时,出现此错误: “未捕获的 TypeError:无法将属性‘innerHTML’设置为 null”

我正在使用文件底部的这个 Javascript。

    <script type ="text/javascript">
    window.addEventListener('load', function () {
      myFunction();
    })

    function myFunction() {
     var thisamount = document.getElementById("cart_total").value;
     alert(thisamount);
     document.getElementById("myspan").innerHTML = thisamount;
    }
    </script>           

我到底做错了什么?

3个回答

您的锚点应如下所示
<a target='_blank' id="myHref" href="#"><span id='myspan'>0.00</span>USD</a>

然后

function myFunction() {
     var thisamount = document.getElementById("cart_total").value;
     alert(thisamount);
     document.getElementById("myHref").href = `https://PayPal.me/MyAccount/${thisamount}`;
     document.getElementById("myspan").innerHTML = thisamount;
    }
Cory Baker
2020-03-02
  1. 您引用了 cart_total,但您的字段名为 amount
  2. 引号内的 span 是文本节点的一部分,它不再是单独的 DOM 节点
window.addEventListener('load', function () {
        myFunction();
    });

    function myFunction() {
        var thisamount = document.getElementById("amount").value;
        console.log("thisamount", thisamount);
        let url = `https://PayPal.me/MyAccount/${thisamount}usd`;
        console.log("url", url);
        document.getElementById("paypalLink").setAttribute("href", url);
    }
<input type="text" name="amount" id="amount" value="$20.00">
<a id="paypalLink" target='_blank' href="https://PayPal.me/MyAccount/">Pay Me!</a>
Carl Armbruster
2020-03-02
  1. 在调用函数之前,您应该首先声明该函数

     <script type ="text/javascript">
    function myFunction() {
    var thisamount = document.getElementById("cart_total").value;
    alert(thisamount);
    document.getElementById("myspan").innerHTML = thisamount;
    }
    
    window.addEventListener('load', function () {
    myFunction();
    })
    </script>
    
  2. 您不能在另一个元素属性内添加元素

    <a target='_blank' href="https://PayPal.me/MyAccount">
    <span id='myspan'>0.00</span>
    
Riy Adh
2020-03-02