Javascript 这个nodeValue替换代码有什么问题?

Javascript 这个nodeValue替换代码有什么问题?,javascript,dom,Javascript,Dom,我正在学习DOM上的基本js操作,它与代码的第一部分配合得很好,完成了属性替换功能 然后,它不适用于第二部分代码,这需要替换“p”元素的childNode.nodeValue的null值 在过去的两个小时里,我检查了很多次,整个结构也和书中的代码一样,但就是不起作用 我还检查了MDN中与节点相关的条目,但也未能了解此处的情况 gallery.js function showpics(indexs){ var linky = indexs.getAttribute("href");

我正在学习DOM上的基本js操作,它与代码的第一部分配合得很好,完成了属性替换功能

然后,它不适用于第二部分代码,这需要替换“p”元素的childNode.nodeValue的null值

在过去的两个小时里,我检查了很多次,整个结构也和书中的代码一样,但就是不起作用

我还检查了MDN中与节点相关的条目,但也未能了解此处的情况

gallery.js

function showpics(indexs){

    var linky = indexs.getAttribute("href");
    var holdy = document.getElementById("holder");
    holdy.setAttribute("src",linky);

    var texty = indexs.getAttribute("title");
    var fun = document.getElementById("funnyWords");
    fun.childNodes[0].nodeValue = texty;

}
下面是HTML文件

<!DOCTYPE html>
<html>

    <head>
        <meta charset="UTF-8" http-equiv="IE=Edge,chrome=1">
        <title>YTimes</title>
        <script type="text/javascript" src="gallery.js"></script>
    </head>

    <body>

        <h1>Our Story</h1>

        <section>
            <ul>
                <li><a href="../../Games/WOW/Screenshots/WoWScrnShot_030815_232128.jpg" title = "F" onclick="showpics(this); return false;">F</a></li>
                <li><a href="../../Games/WOW/Screenshots/WoWScrnShot_041214_150925.jpg" title = "2.0 Version" onclick="showpics(this); return false;">2.0</a></li>
                <li><a href="../../Games/WOW/Screenshots/WoWScrnShot_050214_165318.jpg" title = "Riverrun" onclick="showpics(this); return false;">Riverrun</a></li>
            </ul>
        </section>

        <section>
            <p id="funnyWords"></p>
            <span>
                <img src="" alt="" id="holder">
            </span>
        </section>

    </body>

</html>

时间
我们的故事

问题在于
#funnyWords
没有内容:

因此,
fun.childNodes[0]
未定义

如有必要,可以创建新的文本节点:

if(fun.childNodes.length)
fun.childNodes[0]。nodeValue=texty;
其他的
appendChild(document.createTextNode(texty));
或者,新浏览器支持:

fun.textContent=texty;
问题在于
#funnyWords
没有内容:

因此,
fun.childNodes[0]
未定义

如有必要,可以创建新的文本节点:

if(fun.childNodes.length)
fun.childNodes[0]。nodeValue=texty;
其他的
appendChild(document.createTextNode(texty));
或者,新浏览器支持:

fun.textContent=texty;
问题在于
#funnyWords
没有内容:

因此,
fun.childNodes[0]
未定义

如有必要,可以创建新的文本节点:

if(fun.childNodes.length)
fun.childNodes[0]。nodeValue=texty;
其他的
appendChild(document.createTextNode(texty));
或者,新浏览器支持:

fun.textContent=texty;
问题在于
#funnyWords
没有内容:

因此,
fun.childNodes[0]
未定义

如有必要,可以创建新的文本节点:

if(fun.childNodes.length)
fun.childNodes[0]。nodeValue=texty;
其他的
appendChild(document.createTextNode(texty));
或者,新浏览器支持:

fun.textContent=texty;


时间
我们的故事


时间
我们的故事


时间
我们的故事


时间
我们的故事


或简单地为crossbrowser设置
innerHTML
。@dfsq是,假设
texty
没有任何特殊的html字符。对于答案,尽管我尝试了所有4种方法:A,将文本值设置为p元素;B,使用上面的if-else函数;C、 使用fun.textContent;D、 使用innerHTML。在IE 11、Chrome 41和Firefox 36中都失败了。我不知道为什么。这段代码在您的浏览器中可以正常工作吗?或者对于crossbrowser,只需使用
innerHTML
。@dfsq是,假设
texty
没有任何特殊的html字符。对于答案,尽管我尝试了所有4种方法:A,将文本值设置为p元素;B,使用上面的if-else函数;C、 使用fun.textContent;D、 使用innerHTML。在IE 11、Chrome 41和Firefox 36中都失败了。我不知道为什么。这段代码在您的浏览器中可以正常工作吗?或者对于crossbrowser,只需使用
innerHTML
。@dfsq是,假设
texty
没有任何特殊的html字符。对于答案,尽管我尝试了所有4种方法:A,将文本值设置为p元素;B,使用上面的if-else函数;C、 使用fun.textContent;D、 使用innerHTML。在IE 11、Chrome 41和Firefox 36中都失败了。我不知道为什么。这段代码在您的浏览器中可以正常工作吗?或者对于crossbrowser,只需使用
innerHTML
。@dfsq是,假设
texty
没有任何特殊的html字符。对于答案,尽管我尝试了所有4种方法:A,将文本值设置为p元素;B,使用上面的if-else函数;C、 使用fun.textContent;D、 使用innerHTML。在IE 11、Chrome 41和Firefox 36中都失败了。我不知道为什么。这段代码在浏览器中运行正常吗?因为“funnyWords”中没有子节点,所以fun.childNodes[0]不存在。因此,添加span、div或p元素,以便能够将文本附加到该元素。在上面的示例中,我添加了代码块,因为“funnyWords”中没有子节点,fun.childNodes[0]不存在。因此,添加span、div或p元素,以便能够将文本附加到该元素。在上面的示例中,我添加了代码块,因为“funnyWords”中没有子节点,fun.childNodes[0]不存在。因此,添加span、div或p元素,以便
<head>
    <meta charset="UTF-8" http-equiv="IE=Edge,chrome=1">
    <title>YTimes</title>
    <script type="text/javascript" src="gallery.js"></script>
</head>

<body>

<h1>Our Story</h1>

    <section>
        <ul>
            <li><a href="../../Games/WOW/Screenshots/WoWScrnShot_030815_232128.jpg" title = "F" onclick="showpics(this); return false;">F</a></li>
            <li><a href="../../Games/WOW/Screenshots/WoWScrnShot_041214_150925.jpg" title = "2.0 Version" onclick="showpics(this); return false;">2.0</a></li>
            <li><a href="../../Games/WOW/Screenshots/WoWScrnShot_050214_165318.jpg" title = "Riverrun" onclick="showpics(this); return false;">Riverrun</a></li>
        </ul>
    </section>

    <section>
        <p id="funnyWords">
         <div class="childnode">
         </div>
        </p>
        <span>
            <img src="" alt="" id="holder">
        </span>
    </section>

</body>