在body html中搜索某些文本的最佳方法是什么?
What is the best approach to search some text in body html
到目前为止,我正在使用JavaScript搜索方法来替换body HTML中的一些文本,如下所示。
假设我的html是 <body>
<div> I am in body...</div>
</body>
然后我使用下面的方法
var body = $(body);
var text = body.html();
text = text.replace('I am in body...','Yes');
body.html(text);
但是我发现像IE这样的浏览器页面搜索速度很慢。
请建议我改进这一点,也请让知道是否有任何插件搜索和匹配字符串,即使它包含任何html标签在它..像下面的
<body>
<div><span>I </span> am in body...</div>
</body>
用当前的方法我不能匹配这个…
如果我使用
$('*:contains("some search text string")');
这也将匹配DIV和BODY。但这里我想搜索的是html文本而不是父元素。由于
你应该看看:
ranges:(修改文本而不覆盖整个正文)
即:http://msdn.microsoft.com/en-us/library/ms535872%28v=vs.85%29.aspx
其他:https://developer.mozilla.org/en/DOM/range
find ()/findText () (创建范围)
即: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>
您将只获得包含全文的元素
而不是包含相同文本的其他元素的父元素
var str = "some search text string";
var elements = $("*:contains('"+ str +"')").filter(
function(){
return $(this).find("*:contains('"+ str +"')").length == 0
}
);
我认为你的代码工作得很好,但你的错误是你没有弄清楚"body"的内容。
这是你的代码:
$(document).ready(function(){
var body = $("body"); // your miss this
var text = body.html();
text = text.replace('I am in body...','Yes');
body.html(text);
});
试试这个:
<>之前$(函数(){Var foundin = $('body:contains("一些搜索文本字符串")');});之前希望有所帮助
相关文章:
- 有条件更新d3.js力图中节点的最佳方法
- 将jQuery.ech()方法转换为本地JavaScript抽象的最佳方法是什么
- 处理浮点错误的最佳方法是什么
- 从数组中删除元素的最佳方法是:javascript/jquery
- 以编程方式填充组合框道场 (1.8) 的最佳方法是什么?
- 列出没有 mysql 的元素的最佳方法是什么
- 在jquery库中重新定义方法的最佳方法
- Javascript,用vars创建对象的最佳方法
- 使用 jQuery 从 HTML 中获取某些值的最佳方法
- 在变量中保存值的最佳方法是在应用程序关闭后使用,然后使用apachecordova在android中重新启动
- 在d3.json中使用d3.csv组合多个csv文件数据输入的最佳方法是什么
- 用jasmine测试JavaScriptUI的最佳方法
- 使用javascript:在没有阻止html标记(<b>、<p>等)的情况下,阻止脚本的最佳方法
- 如果我返回表,检查 Ajax 调用是否为 200 OK的最佳方法是什么
- JavaScript - 创建可链接函数时的最佳方法是什么
- 在上下文菜单项单击上显示侧边栏/弹出窗口的最佳方法是什么
- 在 JavaScript 中获取范围的随机数的最佳方法
- 在对象类上实现 jquery 作用域的最佳方法
- 将同步函数包装到承诺中的最佳方法是什么?
- 使用 MVC 删除 JavaScript 中硬编码字符串 Asp.Net 最佳方法