就像标题所说的那样,
我希望能够在页面加载时搜索#wrapper
内的文字。
如果有“&
”,我希望它应用span
标记,并附加一个类span
。
即:
如果找到“hello & Welcome
”
它最终应该像“hello <span class="amp">&</span> Welcome
”。
我确实有一些代码我一直在尝试,但都没有用,所以包含它是没有意义的。 任何帮助都是伟大的家伙,谢谢。
编辑一直在使用
<script type="text/javascript">
$(document).ready(function() {
$("#wrapper").html( $("#wrapper").html().replace(/&/g, '<span class="amp">&<"+"/span>') );
});
</script>
这会在firebug中加载错误,告诉我它不是函数:
$不是一个功能 $(document).ready(function(){
编辑: oops忘了包含我对jQuery的引用..
这有效。
<script type="text/javascript">
$(document).ready(function() {
$("#wrapper").html( $("#wrapper").html().replace(/&/g, '<span class="amp">&<"+"/span>') );
});
</script>
答案 0 :(得分:1)
你看过jquery.highlight了吗?它似乎做你想要的 - 正确的方式(通过仅在文本节点内搜索等)
$("#wrapper").highlight('&');
进一步解释。想象一下以下场景:
<div id='wrapper'>This & should become highlighted.
And a picture: <img src='momanddad.jpg' alt='Mom & Dad' /></div>
毯子regexp替换将捕获这两个&
次出现并返回:
<div id='wrapper'>This <span class="amp">&</span> should become highlighted.
And a picture: <img src='momanddad.jpg' alt='Mom <span class="amp">&</span> Dad' /></div>
这显然会打破你的img标签。 jquery突出显示插件将避免这种情况。
答案 1 :(得分:0)
为了便于阅读,我会重新考虑;
var html = $("#wrapper").text().replace(/&/g,'<span class="amp">&</span>');
$("#wrapper").html(html);
虽然我认为这是对DOM的额外调用。