Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.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 在页面上使用文本字符串搜索功能,有没有办法让搜索忽略特定的div?_Javascript_Html_Jquery_Dom_Search - Fatal编程技术网

Javascript 在页面上使用文本字符串搜索功能,有没有办法让搜索忽略特定的div?

Javascript 在页面上使用文本字符串搜索功能,有没有办法让搜索忽略特定的div?,javascript,html,jquery,dom,search,Javascript,Html,Jquery,Dom,Search,这是我的搜索功能,对于我的目的来说效果很好 var TRange = null; function findString(str) { if (parseInt(navigator.appVersion) < 4) return; var strFound; if (window.find) { // CODE FOR BROWSERS THAT SUPPORT window.find strFound = self

这是我的搜索功能,对于我的目的来说效果很好

    var TRange = null;

    function findString(str) {
    if (parseInt(navigator.appVersion) < 4) return;
    var strFound;
    if (window.find) {
        // CODE FOR BROWSERS THAT SUPPORT window.find
        strFound = self.find(str);
        if (strFound && self.getSelection && !self.getSelection().anchorNode) {
            strFound = self.find(str)
        }
        if (!strFound) {
            strFound = self.find(str, 0, 1)
            while (self.find(str, 0, 1)) continue
        }
    } else if (navigator.appName.indexOf("Microsoft") != -1) {
        // EXPLORER-SPECIFIC CODE        
        if (TRange != null) {
            TRange.collapse(false)
            strFound = TRange.findText(str)
            if (strFound) TRange.select()
        }
        if (TRange == null || strFound == 0) {
            TRange = self.document.body.createTextRange()
            strFound = TRange.findText(str)
            if (strFound) TRange.select()
        }
    } else if (navigator.appName == "Opera") {
        alert("Opera browsers not supported, sorry...")
        return;
    }
    if (!strFound) alert("String '" + str + "' not found!")
        return;
    };

    document.getElementById('f1').onsubmit = function() {
    const marquee = document.querySelector('#marquee');
    let innerHTML = marquee.innerHTML;
    marquee.innerHTML = '';
    let found = findString(this.t1.value);
    marquee.innerHTML  = innerHTML;
    return false;
    };

一个有点骇人的想法,但可能在您的情况下会起作用,就是删除div的innerHTML,进行查找,然后再次放回innerHTML。这可能取决于具体结构是否安全

const marquee = document.querySelector('#marquee');
let innerHTML = marquee.innerHTML;
marquee.innerHTML = '';
let found = findString('whatever');
marquee.innerHTML  = innerHTML;

当然,最好是找出为什么搜索框中的字符串会锁定并解决问题。

如果有帮助,请检查此项-您可以删除框中的innerHTML,进行查找,然后再将其放回吗?@AHaworth您是什么意思?我会将其放在答案中,以便您可以看到代码,但我不确定它在一般情况下的效果。@AHaworth我会继续,在我的问题中添加字幕代码,这样你就可以看到我是如何处理的。这会在我的代码中出现在哪里?你在哪里调用findString。哦,天哪,我找到了,谢谢!现在可以了!
"use strict";

function tick() {
  const element = /*#__PURE__*/React.createElement("marquee", {
    behavior: "scroll",
    bgcolor: "lightyellow",
    loop: "-1",
    width: "700px"
  }, " ", /*#__PURE__*/React.createElement("font", {
    color: "blue"
  }, " ", /*#__PURE__*/React.createElement("strong", null, "Today is: ", new Date().toDateString(), " and the current time is: ", new Date().toLocaleTimeString(), " "), " "), " ");
  ReactDOM.render(element, document.getElementById("marquee"));
}

setInterval(tick, 1000);
const marquee = document.querySelector('#marquee');
let innerHTML = marquee.innerHTML;
marquee.innerHTML = '';
let found = findString('whatever');
marquee.innerHTML  = innerHTML;