Exc*_*ion 5 javascript jquery replace
截至目前,我正在使用javascript搜索方法替换正文HTML中的一些文本,如下所示.
假设我的HTML是
<body>
<div> I am in body...</div>
</body>
Run Code Online (Sandbox Code Playgroud)
然后我使用以下方法
var body = $(body);
var text = body.html();
text = text.replace('I am in body...','Yes');
body.html(text);
Run Code Online (Sandbox Code Playgroud)
但我可以在IE等浏览器中看到慢页面搜索..
请建议我改进这一点,也请知道是否有任何插件可以搜索并匹配字符串,即使它包含任何html标签..如下
<body>
<div><span>I </span> am in body...</div>
</body>
Run Code Online (Sandbox Code Playgroud)
使用当前的方法,我无法匹配这个..
如果我使用
$('*:contains("some search text string")');
Run Code Online (Sandbox Code Playgroud)
这将匹配DIV和BODY ..但是在这里我想搜索html文本而不是父元素...谢谢
你应该看看:
范围:(修改文本而不覆盖整个主体)
IE:http://msdn.microsoft.com/en-us/library/ms535872%28v=vs.85%29.aspx
其他:https://developer.mozilla.org/en/DOM/range
find()/ findText()(创建范围)
IE:http://msdn.microsoft.com/en-us/library/ms536422%28v=vs.85%29.aspx
其他:https://developer.mozilla.org/en/DOM/window.find
(Opera不支持find或findText)
关于这个问题的一个小修改:
<html>
<head>
<script>
function fx(a,b)
{
if(window.find)
{
while(window.find(a))
{
var rng=window.getSelection().getRangeAt(0);
rng.deleteContents();
rng.insertNode(document.createTextNode(b));
}
}
else if(document.body.createTextRange)
{
var rng=document.body.createTextRange();
while(rng.findText(a))
{
rng.pasteHTML(b);
}
}
}
</script>
</head>
<body onload="fx('I am in body...','Yes')">
<div>Oh <span>I </span>am in body...<i>, wonderful</i></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18102 次 |
| 最近记录: |