Javascript 在AJAX调用后在页面上搜索单词
通过使用JavaScript或jQuery,我试图找出页面上是否有一个单词,比如“卡萨布兰卡” 我正在处理的页面会发出一个ajax调用,该调用会更改页面的内容。所以我应该在ajax调用之后搜索“卡萨布兰卡”这个词 到目前为止,我发现最好的方法是:Javascript 在AJAX调用后在页面上搜索单词,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,通过使用JavaScript或jQuery,我试图找出页面上是否有一个单词,比如“卡萨布兰卡” 我正在处理的页面会发出一个ajax调用,该调用会更改页面的内容。所以我应该在ajax调用之后搜索“卡萨布兰卡”这个词 到目前为止,我发现最好的方法是: window.find('casablanca'); 但这段代码突出显示了这个词,这是我不想要的 有更好的办法吗 谢谢大家! 这里有一种快速的编程方法来确定当前HTML页面是否包含特定的关键字: function pageContains(str)
window.find('casablanca');
但这段代码突出显示了这个词,这是我不想要的
有更好的办法吗
谢谢大家! 这里有一种快速的编程方法来确定当前HTML页面是否包含特定的关键字:
function pageContains(str) {
return document.body.innerHTML.toString().indexOf(str) > -1;
}
JSFiddle:
请注意,上面的代码在页面的
body
标记中搜索关键字,因此,如果您在页面的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;
}
函数搜索页面(val){
var-allegements=document.getElementsByTagName('*');
对于(var i=0;i
未测试它向您展示了执行此操作的方法。尝试利用
.contents()
,.is()
返回布尔值
;将.filter()
替换为.is()
以返回包含选定文本的元素,如果为true
,为false
,如果未找到具有选定文本的节点
var res=$(“body”).contents().is(函数(i,el){
return$(“:contains(卡萨布兰卡)”).is(el)
}); console.log(res)
通过使用JavaScript或jQuery,我试图找出页面上是否有一个单词,比如“卡萨布兰卡”
我正在处理的页面会发出一个ajax调用,该调用会更改页面的内容。所以我应该在ajax调用之后搜索“卡萨布兰卡”这个词
到目前为止,我发现最好的方法是:
window.find('casablanca');
window.find('casablanca')代码>
但这段代码突出显示了这个词,这是我不想要的
有更好的办法吗
谢谢大家!
你期望的行为是什么而不是突出显示它?@Anchor他说“找出页面上是否存在单词,而不突出显示”,所以我假设他只是想要一个booldocument.body.innerHTML.match('casablanca')
嗨,Ozan,如果你觉得你的问题已经得到了回答,请不要忘记将其中一个答案标记为“已接受”单击答案左侧的灰色复选标记。如果您的问题尚未完全回答,请详细说明,以便我们进一步提供帮助!谢谢