在AJAX调用后搜索页面上的单词
Searching for a word on a page after an AJAX call
通过使用JavaScript或jQuery,我试图弄清楚如果一个词,说"卡萨布兰卡",在页面上可用?
我正在处理的页面使ajax调用改变页面的内容。所以我应该在ajax调用后搜索单词"casablanca"。
到目前为止我找到的最好的方法是:
window.find('casablanca');
但是这段代码突出了这个单词,这是我不想要的。
有更好的方法吗?
谢谢!
这里有一个快速且程序化的方法来确定当前HTML页面是否包含特定的关键字:
function pageContains(str) {
return document.body.innerHTML.toString().indexOf(str) > -1;
}
JSFiddle: https://jsfiddle.net/shj4LwqL/
请注意,上面的代码搜索关键字在页面的body
标签,所以如果你有你的JavaScript在页面主体,你的关键字是写在你的JavaScript字符串,那么你会得到一个假阳性。如果希望在特定元素中搜索,则可以使用以下变体:
function elementContains(el, str) {
return el.innerHTML.toString().indexOf(str) > -1;
}
只能在内容中搜索,不能在标签中搜索,依此类推:
function searchInPage(val) {
var allElements = document.getElementsByTagName('*');
for(var i = 0; i < allElements.length; i++) {
var node = allElements[i].firstChild;
//Is it a text node?
if(node !== null && node.nodeType === 3) {
if(node.nodeValue == val) return true;
}
}
return false;
}
untestest 它告诉你怎么做
尝试使用.contents()
, .is()
返回Boolean
;将.filter()
替换为.is()
以返回包含选定文本的元素,如果true
,则返回false
,如果未找到包含选定文本的节点
var res = $("body").contents().is(function(i, el) {
return $(":contains(casablanca)").is(el)
}); console.log(res)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="post-text" itemprop="text">
<p>By using JavaScript or jQuery, I am trying to figure out if a word, say "casablanca", is available on the page?</p>
<p>The page I am working on makes an ajax call which changes the content of the page. So I am supposed to search for the word "casablanca" after the ajax call.</p>
<p>The best way I have found so far is:</p>
<pre class="default prettyprint prettyprinted"><code><span class="pln">window</span><span class="pun">.</span><span class="pln">find</span><span class="pun">(</span><span class="str">'casablanca'</span><span class="pun">);</span></code></pre>
<p>But this code highlights the word, which is something I don't want.</p>
<p>Is there a better way?</p>
<p>Thank you!</p>
</div>
相关文章:
- 在正则表达式中搜索单词
- 在字符串列表中搜索任何出现的单词,如果单词的第一个字符匹配,则高亮匹配单词.Javascript正则表达式
- 在自动刷新网页时搜索单词
- 选择下拉菜单:实现非精确搜索,每个单词都将被不可重复地搜索
- Javascript-在一个数组中搜索整个单词,并创建一个符合条件的新数组
- 如何在搜索框中获取从特定字母开头的单词
- JQuery在链接的静态页面中搜索,突出显示找到的单词,而不破坏列表
- 谷歌建议搜索多个单词
- Jquery搜索表可以'找不到带括号的单词
- 在包含多个单词的表中搜索
- UIWeb查看搜索问题中出现的下一个单词
- 如何更新单词列表中搜索框中包含用户键入内容的单词/字母数
- 如何使搜索框中的单词可单击以使用 jquery 删除它们
- 为什么递归单词搜索求解器缺少五个单词,却找到了其他 47 个单词
- JavaScript单词搜索,从单词的开头开始带空格和不带空格
- JavaScript正则表达式搜索每个单词和后续单词的开头
- 使用javascript在HTML5画布上制作单词搜索网格
- 使用Meteor Spotify API根据单词搜索返回专辑列表,并需要为列表中的每个专辑拉入曲目
- 隔离JS单词搜索代码中的第一个和最后一个字母
- 使用jquery为非英语字符创建单词搜索谜题