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