javascript - 与 jQuery 的 $() 不同,由于 document.getElementById() 和 document.querySelector() 不返回节点,无法在 vanilla JS 上附加子项

标签 javascript jquery html

我做不到:

document.querySelector("#myDiv").appendChild("<img src='./img/mine.png' class='mine hidden'></img>");

或:

document.getElementById("myDiv").appendChild("<img src='./img/mine.png' class='mine hidden'></img>");

这两种方法都将文本放入调用它们的 div 中。唯一有效的是:

$("#myDiv").append("<img src='./img/mine.png' class='mine hidden'></img>");

我相信这是因为 jQuery 的 $() 的普通 JS 替代品不返回节点。

console.log(document.getElementById("myDiv"))
console.log(document.querySelector("#myDiv"))
console.log($("#myDiv"))
document.getElementById("myDiv").append("<p>Hi</p>")
document.querySelector("#myDiv").append("<p>Hi</p>")
$("#myDiv").append("<p>Hi</p>")
div {
height: 80px;
background-color: green;
width: 100%;
}

p {
background-color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="myDiv"></div>

最佳答案

Vanilla JS 具有设置 HTML 节点内部值的功能。

也许试试这个而不是追加函数:

document.getElementById("myDiv").innerHTML = "<img src='./img/mine.png' class='mine hidden'></img>"

关于javascript - 与 jQuery 的 $() 不同,由于 document.getElementById() 和 document.querySelector() 不返回节点,无法在 vanilla JS 上附加子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59183242/

相关文章:

html - 移动时在内容中插入边栏 (bootstrap 3)

javascript - 浏览器无下载提示问题

javascript - 如何为流类型设置默认值?

javascript - 反转Y轴D3

javascript - 无法在此代码中获取 this.value

javascript - bootstrap-datepicker 中的 beforeShowDay 标题不起作用

javascript - 如何清除文本字段焦点上的文本字段

jquery - 无法隐藏 jQuery 验证插件的错误标签

javascript - ajax 大表单提交的更短方法

html - Notepad++ 不显示列表和图像