Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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删除包含特定值的大字符串中的模式?_Javascript - Fatal编程技术网

如何使用javascript删除包含特定值的大字符串中的模式?

如何使用javascript删除包含特定值的大字符串中的模式?,javascript,Javascript,我得到了一个很大的javascript变量,它包含大约100组数据。例如,如果在这些集合中找到一些单词,我想过滤这些集合(如果从数组中找到一个单词,则删除该集合)。我将这些单词设置为数组(items=[“mango”、“apple”、“pen”];) 谁能告诉我怎么做 集合示例: <li> <img src="./mango.jpg" width="180" height="148" alt="mango season" class="

我得到了一个很大的javascript变量,它包含大约100组数据。例如,如果在这些集合中找到一些单词,我想过滤这些集合(如果从数组中找到一个单词,则删除该集合)。我将这些单词设置为数组(items=[“mango”、“apple”、“pen”];)

谁能告诉我怎么做

  • 集合示例:

    <li>
            <img src="./mango.jpg" width="180" height="148"
                 alt="mango season" class="png">
            <a href="/mango/"  class="corners">&nbsp;</a>
    
    
                <div class="thumbnail_label">ok</div>
    
    
          <div class="details">
            <div class="title">
              <a  href=
              "/mango/"> mango</a>
              <span class="season">2</span>
            </div>
            <ul class="subject">
              <li>read</li>
            </ul>
            <ul class="sub-info">
              <li class="location">Europe</li>
              <li class="price">2</li>
            </ul>
          </div>
        </li>
    
  • 好啊 2.
    • 阅读
      欧洲
    • 2

  • 我将列出我将使用的方法/功能,因为我知道这是一个通用的示例,所以不打算深入到确切的代码中

  • 将字符串更改为一组DOM元素,这样您就可以在它们上使用DOM函数-也许可以制作一个
    并对大字符串进行innerHTML
  • 创建列表项的数组:
    var elementArray=document.getElementById('dom_set')。querySelector(li),因此elementArray[0]是第一个li,以此类推
  • 迭代数组:
    var testString=elementArray[0]-请注意,outerHTML不是100%跨浏览器兼容的,因此您需要对其进行原型化(Google可以知道如何对outerHTML进行原型化吗)
  • 在这个迭代中,迭代要检查的单词数组,然后检查它们。所以应该是
    if(testString.indexOf(badWordArray[j]>-1))
    注意indexOf在IE8中不起作用,所以您也需要对其进行原型化
  • 在“if”语句中,如果坏词在其中,则可以删除节点
  • 循环遍历所有节点后,可以通过
    var cleanString=document.getElementById('dom_set').innerHTML将其转换回字符串

  • 显然,有很多实际代码需要您填写,但这可能是一种更干净的方法,与尝试进行一大堆复杂的字符串操作相比,它不太可能出错。

    假设您想要的值(“mango”、“apple”、“pen”)是带有类的“div”元素中“a”元素的文本子元素“title”位于类为“details”的“div”元素中,假设您可以使用jQuery:

    来自htmlFragment(htmlFragment)的函数项{ 变量选择器='div[class=details]div[class=title]a'; 返回$(选择器,htmlFragment).map(函数(idx,el){ 返回$(el.text().trim(); }); }
    var bigVariable='
  • 你说的“在它们中找到”是什么意思?在标记之间的任何部分、字符串或某些特定字段中找到?这些“li集”是指DOM元素的集合、HTMLSTRING数组还是其他什么?请向我们展示填充“大javascript变量”的代码“谢谢sze和bergi的回复。sza例如,如果在第一个href值中找到单词mango,那么我想删除该li!看起来您的列表项嵌套在其他列表项中-是否要删除包含word的所有列表项?或者仅仅是最低级别的一个?我的大html变量中有许多li集。因此,在上面的示例集中,如果在first href中找到单词mango,那么这意味着我需要省略整个li(大li最外层的谎言,或者作为示例的谎言应该省略,因为在其中找到了单词mago),然后移到下一个li。。。