javascript 如何用类似createElement的方法通过一段html创建一个节点
需要一个函数比如叫newElement(t),能够实现如下功能参数是"<div>aaa</div>",那么他就返回一个<div>的节点,innerHTML是aaa参数是"...
需要一个函数比如叫newElement(t),能够实现如下功能
参数是"<div>aaa</div>",那么他就返回一个<div>的节点,innerHTML是aaa
参数是"<table><tbody><tr><td>abab</td></tr></tbody></table>"那么他就返回一个<table>的节点
参数是'<input name="username" type="text" value="" />'那么就返回一个有如上参数的<input>节点
如果里面不是个正常的html,可以返回任何东西都无所谓。
要求firefox或Chrome可以调试通过,IE无所谓。
不引入类库,谢谢。 展开
参数是"<div>aaa</div>",那么他就返回一个<div>的节点,innerHTML是aaa
参数是"<table><tbody><tr><td>abab</td></tr></tbody></table>"那么他就返回一个<table>的节点
参数是'<input name="username" type="text" value="" />'那么就返回一个有如上参数的<input>节点
如果里面不是个正常的html,可以返回任何东西都无所谓。
要求firefox或Chrome可以调试通过,IE无所谓。
不引入类库,谢谢。 展开
展开全部
最开始我想到的方法和二楼一样,但是,实际操作了一下,不能解决类似<td><tr>这种问题。
火狐里<td><tr>如果位置写的不正确会被直接删除。例如:
<div id="testdiv" style="background:#c0c0c0;width:900px;height:100px;"><tr id="testtr">
11111111
</tr></div>
浏览器显示出来:
<div id="testdiv" style="background:#c0c0c0;width:900px;height:100px;">
11111111
</div>
这还是直接写页面源代码的情况。
appendChild();方法也一样,所以返回的只有:文本节点:”hello world“。
js有一种var temp = document.createDocumentFragment();临时存储节点,也是同样,会去掉<tr><td>。除非是向<table>元素中 appendChild()或innerHTML 否则都会被忽略。且只能是向<tr>下追加<td> 或者 向<table>下追加<tr>才有效。
你自己找正则去吧。又没分。
火狐里<td><tr>如果位置写的不正确会被直接删除。例如:
<div id="testdiv" style="background:#c0c0c0;width:900px;height:100px;"><tr id="testtr">
11111111
</tr></div>
浏览器显示出来:
<div id="testdiv" style="background:#c0c0c0;width:900px;height:100px;">
11111111
</div>
这还是直接写页面源代码的情况。
appendChild();方法也一样,所以返回的只有:文本节点:”hello world“。
js有一种var temp = document.createDocumentFragment();临时存储节点,也是同样,会去掉<tr><td>。除非是向<table>元素中 appendChild()或innerHTML 否则都会被忽略。且只能是向<tr>下追加<td> 或者 向<table>下追加<tr>才有效。
你自己找正则去吧。又没分。
追问
正则式的我写了个能将就用的,就是不支持属性值罢了,其他的还好,我问只是觉得这个解法太ugly了……
var newElement = function (html) {
var tagname = html.replace(/^$/, '').replace(/^]*>(.*)]>$/, '$1');
return o;
}
展开全部
JQuery 符合你的要求
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
function newElement(text){
var div = document.createElement("div");
div.innerHTML = text
return div.firstChild;
}
不知道你是不是要的这个
var div = document.createElement("div");
div.innerHTML = text
return div.firstChild;
}
不知道你是不是要的这个
追问
给你组测试数据你试试:'hello, world',
运行结果,
如果要是写成这个样子就能用我不至于在这里问……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询