我想补充一点 <a href='https://google.com'>
在...之后 <div>
.
这是我一直在尝试的。
请问有谁能帮我解决一下吗?
谢谢你的帮助
你是这样想的吗?
<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>
你选择的方式 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);
}
似乎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>