如果与某些字符串不匹配,则循环并删除

loop and remove if not match with some strings

本文关键字:循环 删除 不匹配 字符串 如果      更新时间:2023-09-26

这段代码不能正常工作。它会删除1 3 5 7 9行不管值是否匹配我想删除所有不包含这些名字的行

我做错了什么?在这方面我是个新手。

var cuv1 = "John" ;
var cuv2 = "Jonny" ;
var cuv3 = "James" ;
var cuv4 = "Josh" ;
var cuv5 = "Jeff" ;
var cuv6 = "Joe" ;
var log = document.getElementsByName("log_str") ;
for(var i=0;i<log.length;i++)
{ 
        if (log[i].textContent.match(cuv1) || 
            log[i].textContent.match(cuv2) || 
            log[i].textContent.match(cuv3) || 
            log[i].textContent.match(cuv4) ||
            log[i].textContent.match(cuv5) || 
            log[i].textContent.match(cuv6)){}
        else { (log[i].parentNode.parentNode.parentNode).remove(); }
}

问题解决与反转循环。谢谢你

for(var i=log.length-1; i>=0; i--)

下面是有效的代码:

var cuv1 = "John" ;
var cuv2 = "Jonny" ;
var cuv3 = "James" ;
var cuv4 = "Josh" ;
var cuv5 = "Jeff" ;
var cuv6 = "Joe" ;
var log = document.getElementsByName("log_str") ;
for(var i=0;i<log.length;i++)
{ 
    if (log[i].text.indexOf(cuv1) >=0 || 
        log[i].text.indexOf(cuv2) >=0 || 
        log[i].text.indexOf(cuv3) >=0 || 
        log[i].text.indexOf(cuv4) >=0 ||
        log[i].text.indexOf(cuv5) >=0 || 
        log[i].text.indexOf(cuv6) >=0){}
    else { (log[i].parentNode.parentNode).remove(); }
}