如何用Javascript在div中添加href值?

问题描述 投票:0回答:1

我想补充一点 <a href='https://google.com'> 在...之后 <div>.

这是我一直在尝试的。

http:/jsfiddle.netL29e4ftj。

请问有谁能帮我解决一下吗?

谢谢你的帮助

javascript html autocomplete
1个回答
0
投票

你是这样想的吗?

<div id="autoComplete_list">

    <div data-id="2" class="autoComplete_result">
        <span class="autoComplete_highlighted">google</span>
    </div>
    
</div>

<script>
    
    var aUrl = document.createElement("a"); 
    aUrl.setAttribute("href", "https://google.com");
    aUrl.innerHTML = "<span class='autoComplete_highlighted'>Google</span>"
    

    document.querySelector("#autoComplete_list").appendChild(aUrl);

</script>

0
投票

問題

你选择的方式 div 略有错误。

你用的是 getElementsByClassName() 其中返回一个 列表 的元素,而不是单个元素,所以你会得到 [div] 而不是 div.

解决办法

你可以得到该列表的第一个元素。

document.getElementsByClassName("autoComplete_result")[0]

或者使用更简单的 Document.querySelector:

document.querySelector(".autoComplete_result") (只返回 一个 元素,而不是一个数组)。)

window.onload=function() {

    // Notice the [0] which selects ONLY the first matched element
    var mydiv = document.getElementsByClassName("autoComplete_result")[0]; 
    var a = document.createElement('a');
    a.setAttribute('href',"https://www.google.com");
    a.innerText = "google link";
    mydiv.appendChild(a);
}

0
投票

似乎getElementsByClassName没有按照预期返回,所以appendChild没有工作。我尝试使用querySelector,工作正常。请看下面的代码片段。

var mydiv = document.querySelector('.autoComplete_result');
var a = document.createElement('a');
a.setAttribute('href',"https://www.google.com");
a.innerText = "google link";
mydiv.appendChild(a);
<body>
  <div id="autoComplete_list">

      <div data-id="2" class="autoComplete_result">
          <span class="autoComplete_highlighted">goog</span>le
      </div>

  </div>
</body>
© www.soinside.com 2019 - 2024. All rights reserved.