我有一个像这样在屏幕上部署的跨度......
<SPAN ID=_Datasoln_solutiondetails class=VIEWBOX STYLE=WIDTH:"100px"><table border="0" cellspacing="1" cellpadding="1" width="100%" align="left"><tbody><tr><td><a href="Solutions/image/33-10058/Penguins.jpg"><img border="0" alt="" align="left" width="200" height="150" style="margin-right: 10px" src="/Solutions/image/33-10058/Penguins.jpg" /></a></td><td valign="top" align="left"><p>When installing TC it fails on Error "Can't be bother to do this today".</p></td></tr></tbody></table><p> </p></SPAN>
我需要转换<
,>
&amp; "
元素到&lt;,&gt; &安培; “
我写了这篇Jquery但没有任何反应......
$(document).ready(function() {
var text = $("#_Datasoln_solutiondetails").val();
text = text.replace('<','<','>','>','"','"');
});
有人可以帮忙吗?
编辑JSfiddle
答案 0 :(得分:3)
答案是阅读范围的.text()
,进行每次更换,然后将其写回HTML:
var text = $("#_Datasoln_solutiondetails").text();
text = text.replace('<','<').replace('>','>').replace('"','"');
$("#_Datasoln_solutiondetails").html(text);
编辑:请参阅@David回答,您甚至不需要执行.replace()
答案 1 :(得分:3)
首先,val()
用于检索表单元素的值。相反,请使用html()
来检索元素内容的来源,或使用text()
来检索文本内容。
您的代码的另一个问题是,一旦您获取了该值,您就不会设置该值。使用text('abc')
设置文本值,或html('<b>abc</b>')
设置HTML源。
现在,您想要在特定场景中执行的操作实际上只是采用文本并将其用作源:
$("#_Datasoln_solutiondetails").html( $("#_Datasoln_solutiondetails").text() );
至于你的替换,嗯,根据上面的代码,它们是多余的,但它们也是错误的。如果你真的想要替换,请注意你不能通过在代码中添加其他参数来链接几个替换,并注意javascript string replace只替换第一个匹配。您想要使用的内容(如果上面的代码不够用)是正则表达式替换:
text = text.replace(/</g,'<');
text = text.replace(/>/g,'>');
text = text.replace(/"/g,'"');
其中/.../
表示正则表达式,g
表示全局,即替换所有匹配项。
答案 2 :(得分:1)
它是一个span,而不是一个表单控件,它没有值。请改用text()
方法。
var element = jQuery('foo');
element.html(element.text());
答案 3 :(得分:0)
据我所知,你自己正在替换一些角色。实际的元素内容不包含像<
这样的实体引用,而是包含它们所表示的字符;当浏览器读取HTML源并构建文档树时,将解释实体引用。但是你想要完成的是什么?整个页面的URL会有所帮助。
答案 4 :(得分:-1)
我认为它不起作用,因为你的SPAN
属性值没有用引号括起来。 jQuery似乎无法选择它,更不用说它了。
确保它们用引号括起来:
<span id="_Datasoln_solutiondetails"></span>