无法将节点附加到空 div

萨卡拉布
<div id = "first"></div>
<div id = "second"></div>
<div id = "third"></div>

尝试在 javascript 函数中动态附加到这些 div

if (condition??) variable = "first"
else if (condition) variable = "second"
else variable = "third"

let div = document.getElementById(variable);

根据某些条件,上面的变量可以是第一、第二或第三。

div.appendChild(img)  
div.appendChild(text)

然而,由于 div 最终为空,我将无法向它追加任何内容,因为出现以下错误。

Cannot read property 'appendChild' of null.

那么知道如何解决这个问题吗?

编辑:在下面添加了实际的代码片段

// my html
<div id = "list" class = "center"> Listing <br><br>
    <div id = "first"></div>
    <div id = "second"></div>
    <div id = "third"></div>
</div>

//my js
$.ajax({
        async: true,
        type: 'GET',                
        url: "rankings/" + boss + ".txt",
        boss : boss,
        success: function(sData){
            let temp = this.boss
            let div = document.getElementById(temp);
            //console.log(temp) logs "first" on the console
            let img = document.createElement("img");    
            let text = document.createElement('td1');
            img.src = "images/" + temp + ".jpg";
            img.alt = temp
            div.appendChild(img)  
            div.appendChild(text)

编辑 2:代码执行的图像

https://imgur.com/a/WkYTn

阿比拉什·纳亚克

您的代码看起来正确!但是,我认为问题是,您是在呈现 DOM 之前加载 Javascript(例如,您正在 中加载脚本<head>)。所以javascript无法找到div..

var variable= "second";
var boss = "boss_baby";
let div = document.getElementById(variable);
console.log(variable) //logs "first" on the console
let img = document.createElement("img");    
let text = document.createElement('td1');
img.src = "images/" + boss + ".jpg";
img.alt = boss
div.appendChild(img)  
div.appendChild(text)
#first, #second, #third {
display:block;
border: 1px solid blue;
height: 50px;
width: 200px;
margin : 10px;
}
<div id = "list" class = "center"> Listing <br><br>
    <div id = "first"></div>
    <div id = "second"></div>
    <div id = "third"></div>
</div>

要解决此问题,您可以<script>在 body 标签结束之前加载right</body>

或在onload方法中添加所有脚本

window.onload = function() {
// all your JS code goes here
}

或者

document.onload = function() {
// all your JS code goes here
}

问题编辑后:

您的代码看起来正确!但是,现在我怀疑您尝试访问的元素在您从 ajax 收到响应时可能已被删除。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法将DOM元素附加到DIV节点:未捕获的HierarchyRequestError:无法在“节点”上执行“ appendChild”

来自分类Dev

无法将数据附加到div

来自分类Dev

无法将表格附加到div

来自分类Dev

无法将数据附加到div

来自分类Dev

无法将高库存附加到div

来自分类Dev

无法将图片附加到div

来自分类Dev

无法将图像附加到div元素,引发异常

来自分类Dev

无法将子元素附加到父div

来自分类Dev

使用Javascript将内容附加到div无法正常工作

来自分类Dev

将表格附加到div

来自分类Dev

将div附加到图像

来自分类Dev

将CSS附加到div

来自分类Dev

将div附加到div以创建div网格

来自分类Dev

Javascript:将文本附加到div吗?

来自分类Dev

将div附加到所选文本

来自分类Dev

将div或span附加到下拉列表

来自分类Dev

如何将元素附加到div?

来自分类Dev

将HTML附加到论坛中的DIV

来自分类Dev

用jQuery将JavaScript附加到div

来自分类Dev

将数据从div附加到链接网址

来自分类Dev

将多个项目附加到Div

来自分类Dev

javascript将元素附加到div中

来自分类Dev

使用 jquery 将数据附加到 div

来自分类Dev

将多个值附加到单个 div

来自分类Dev

Vuejs - 将组件动态附加到 div

来自分类Dev

Javascript - 将 <script></script> 附加到 Div

来自分类Dev

我无法将for循环附加到HTML正文中的div标签。有任何想法吗?

来自分类Dev

无法将已经存在的 h1 附加到另一个 div

来自分类Dev

尝试将文本附加到 Else If 中的 DIV 时,无法读取 Null 的“classList”的属性