2013-04-10 72 views
0

我有文字标签这样一个HTML页面:解析自定义文本标签的html页面中JS

<div id="container"> 
[stag id="789"]some content 1[/stag] 
</div> 

<span id="somespan"> 
[stag vn="78988" id="532"]some content 2[/stag] 
</span> 

[stag id="891" vn="78988"]some content 3[/stag] 

我想用JS解析整个页面代码,并让所有的“鹿”属性和内容,并用生成的div在原地替换它们。

注意:这不是一个有效的标记,它是方括号内的, ,当js未加载时必须在页面上显示为纯文本,而在解析时为div。

getElementsByTagName在这种情况下无法正常工作,因为[stag]不是有效的html标记,它是纯文本的网页。

什么是最好的方式来实现,以一种方式能够动态地解析该标签。

我认为我寻求帮助创造: getElementsBySquereBracketsTagName

感谢配发对你的帮助

+0

_“我认为我寻求帮助创造:getElementsBySquereBracketsTagName” _ - 不是真的,因为你自己说的,这只是普通的文本内容,所以它只是文本节点而不是DOM角度的_element_节点。 – CBroe 2013-04-10 14:34:30

回答

1

它可能不是有效的标记,因为你将在一个跨度结束了资料核实,但这里一种方法来做到这一点。

由于HTML

<html> 
    <body> 
     <div id="container"> 
     [stag id="789"]some content 1[/stag] 
     </div> 

     <span id="somespan"> 
     [stag vn="78988" id="532"]some content 2[/stag] 
     </span> 

     [stag id="891" vn="78988"]some content 3[/stag] 
    </body> 
</html> 

的JavaScript

document.body.innerHTML = 
document.body.innerHTML.replace(/\[/gi,'<').replace(/\]/gi,'>').replace(/stag/gi,'div') 
+0

嗨,这是好的,但如果我用div替换所有的雄鹿,我怎么能后来识别所有其他div中的雄鹿,而不添加任何标识属性如:[stag class =“stag”id =“ 324] content [/ stag] ..它会成为一个div后,我可以告诉它是一个雄鹿,并获得与鹿类的所有元素,但我不想包括类=“雄鹿”所有的时间......任何隐私?谢谢.. – itai 2013-04-10 20:00:52

+0

你的代码是不正确的...所有的雄鹿,文件中的所有[,所有],被取代...不仅[stags] [/ stags] ,我的意思是'['']'必须保持']''['为纯文本,除非它们用于[单个]标记... – itai 2013-04-10 20:10:17

+0

hi @itai我不确定你是否可以帮助你。从真假标签中检测真正的标签是相当困难的,但考虑到您的原始示例代码有效 – Peter 2013-04-11 10:17:22