如何用JS获得自定义标签

syisisis 2009-12-28 03:27:55
问题1:想通过JS获得自定义标签,中间碰到2个问题。以下<Control>为自定义标签,下面代码已经能获得自定义标签,并且在标签后方插入HTML代码。但是把下面代码中<Table>标签删除后插入功能就失效了。比较奇怪的问题。

问题2:当通过Ajax把自定义标签加页面某一容器时候。自定义标签就不作为HTML显示了,无法通过下面的function获得。请问怎么解决??


<script type="text/javascript">
function s()
{
document.getElementById("ds");
var di = document.getElementsByTagName("Control");
alert(di.length);
for(var i =0; i < di.length;i++)
{
di[i].insertAdjacentHTML("afterEnd","<br><input name='txt1'>");

}
}
</script>

<table id="t">
</table>

<div id="ds">
<Control Title="标题啊啊啊啊啊"/>

<Control />
</div>
<br/>


<input type="button" value ="clikck em" onclick="s()"/>
...全文
437 3 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
千游 2009-12-28
  • 打赏
  • 举报
回复
学习啊~学习
Objector 2009-12-28
  • 打赏
  • 举报
回复
学习~
王集鹄 2009-12-28
  • 打赏
  • 举报
回复
声明为xhtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">


兼容firefox要自己定义insertAdjacentHTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<script type="text/javascript">
if ('undefined' != typeof HTMLElement && HTMLElement.prototype && !HTMLElement.prototype.insertAdjacentHTML)
HTMLElement.prototype.insertAdjacentHTML = function (sWhere, sHTML) {
var df; var r = this.ownerDocument.createRange();
switch (String(sWhere).toLowerCase()) {
case 'afterbegin':
r.selectNodeContents(this);
r.collapse(true);
df = r.createContextualFragment(sHTML);
this.insertBefore(df, this.firstChild);
break;
case 'afterend':
r.selectNodeContents(this);
r.collapse(true);
df = r.createContextualFragment(sHTML);
this.appendChild(df);
break;
case 'beforebegin':
r.setStartBefore(this);
df = r.createContextualFragment(sHTML);
this.parentNode.insertBefore(df, this);
break;
case 'beforeend':
r.setStartBefore(this);
df = r.createContextualFragment(sHTML);
this.parentNode.appendChild(df);
break;
}
};


function s() {
document.getElementById("ds");
var di = document.getElementsByTagName("Control");
for(var i = 0; i < di.length; i++) {
di[i].insertAdjacentHTML("afterEnd","<br><input name='txt1'>");
}
}
</script>
<body>
<div id="ds">
<Control Title="标题啊啊啊啊啊"/>
<Control Title="测试"/>
</div>
<br/>
<input type="button" value ="clikck em" onclick="s()"/>
</body>
</html>
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2009-12-28 03:27
社区公告
暂无公告