see you again
Home
About
Photos
Contact
欢迎您的访问!
欢迎来到《see you again》歌曲的官方网站。
您可以了解更多歌曲信息,
查看歌曲相关的图片,
如果您想了解更多,还可以联系我们。
js:
function insertAfter(newElement,targetElement)
{
var parent=targetElement.parentNode;
if(parent.lastChild==targetElement)
{
parent.appendChild(newElement); //如果目标节点是最后一个子节点,则父节点添加新元素节点即可
}
else
{
parent.insertBefore(newElement,targetElement.nextSibling); //不是最后一个子节点,则将新节点插入目标节点的下一个兄弟节点之前
}
}
function addClass(element,value) //给元素增加类
{
if(!element.className)
{
element.className=value;
}
else
{
NewClassName=element.className;
NewClassName+=' ';
NewClassName+=value;
element.className=NewClassName;
}
}
function prepareSlideshow()
{
if(!document.createElement)
{
return false;
}
if(!document.createTextNode)
{
return false;
}
if(!document.getElementById)
{
return false;
}
if(!document.getElementById("intro"))
{
return false;
}
var slideshow=document.createElement("div"); //创建新的div容器节点
slideshow.setAttribute("id","slideshow"); //为容器设置id,方便后面的操作
var preview=document.createElement("img"); //创建新的img元素节点,并设置其属性
preview.setAttribute("src","images/slideshow.gif");
preview.setAttribute("alt","图片正在加载");
preview.setAttribute("id","preview" );
slideshow.appendChild(preview); //把图片添加到容器中
var intro=document.getElementById("intro");
insertAfter(slideshow,intro);
}
在网页中查看源代码显示是这样的:
欢迎您的访问!
欢迎来到《see you again》歌曲的官方网站。 您可以了解更多
歌曲信息
, 查看
歌曲相关的图片
, 如果您想了解更多,还可以
联系我们
。
就是在查看网页源代码中,在
标签开始后,多出了一个
,而在原来的标签前多了一个,导致结果出错,为什么会这样,该怎么解决?求告知!
回复讨论(解决方案)
这涉及到w3c标准,p标签内部不能嵌套块级元素。如果写HTML时误把块级元素放到p标签内部,p标签会提前闭合,也就是楼主所描述的情况(h1标签放在p标签内),和js无关,你把id为intro的p标签改写成div就可以了
改成DIV,层层嵌套的还是用DIV比较好
这涉及到w3c标准,p标签内部不能嵌套块级元素。如果写HTML时误把块级元素放到p标签内部,p标签会提前闭合,也就是楼主所描述的情况(h1标签放在p标签内),和js无关,你把id为intro的p标签改写成div就可以了
我的本意是通过调用js中的insertAfter函数,在段落之后插入div,不是在段落中插入,仔细检查了js函数,似乎也没有错误。这该怎么解决呢?
这涉及到w3c标准,p标签内部不能嵌套块级元素。如果写HTML时误把块级元素放到p标签内部,p标签会提前闭合,也就是楼主所描述的情况(h1标签放在p标签内),和js无关,你把id为intro的p标签改写成div就可以了
不好意思,刚刚没仔细看您的解答,按照您的回复解决了问题,非常感谢!
查看更多关于请教大神,使用js在文本段落后插入div图片容器,结果图片却显示到段落前了,代码如下。非常感谢!_h的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did111770