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

时间:2014-08-25 15:28:17

标签: javascript

此代码无法正常运行。它正在删除行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--)

1 个答案:

答案 0 :(得分:0)

以下是有效的代码:

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(); }
}