Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在AJAX调用后在页面上搜索单词_Javascript_Jquery_Html_Ajax - Fatal编程技术网

Javascript 在AJAX调用后在页面上搜索单词

Javascript 在AJAX调用后在页面上搜索单词,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,通过使用JavaScript或jQuery,我试图找出页面上是否有一个单词,比如“卡萨布兰卡” 我正在处理的页面会发出一个ajax调用,该调用会更改页面的内容。所以我应该在ajax调用之后搜索“卡萨布兰卡”这个词 到目前为止,我发现最好的方法是: window.find('casablanca'); 但这段代码突出显示了这个词,这是我不想要的 有更好的办法吗 谢谢大家! 这里有一种快速的编程方法来确定当前HTML页面是否包含特定的关键字: function pageContains(str)

通过使用JavaScript或jQuery,我试图找出页面上是否有一个单词,比如“卡萨布兰卡”

我正在处理的页面会发出一个ajax调用,该调用会更改页面的内容。所以我应该在ajax调用之后搜索“卡萨布兰卡”这个词

到目前为止,我发现最好的方法是:

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他说“找出页面上是否存在单词,而不突出显示”,所以我假设他只是想要一个bool
document.body.innerHTML.match('casablanca')
嗨,Ozan,如果你觉得你的问题已经得到了回答,请不要忘记将其中一个答案标记为“已接受”单击答案左侧的灰色复选标记。如果您的问题尚未完全回答,请详细说明,以便我们进一步提供帮助!谢谢