Javascript 循环遍历数组的If语句无效

Javascript 循环遍历数组的If语句无效,javascript,if-statement,Javascript,If Statement,如果当前页面的URL与条目数组匹配,则应执行If语句上部的代码,否则将执行底部(else)中的代码: window.onload = function() { var currentPage = [ 'http://www.chineselearnonline.com/amember/member.php', 'http://www.chineselearnonline.com/amember/profile.php' ] if (currentPage.indexOf(

如果当前页面的URL与条目数组匹配,则应执行If语句上部的代码,否则将执行底部(
else
)中的代码:

window.onload = function() { 
  var currentPage = [
  'http://www.chineselearnonline.com/amember/member.php',
  'http://www.chineselearnonline.com/amember/profile.php'
  ]

  if (currentPage.indexOf(2) == -1 ) {
    document.getElementsByClassName('grey-block')[0]
      .insertAdjacentHTML('afterend', '<div style="top:124px;" class="orange-block-2"><a href="http://clo2015.chineselearnonline.com/">Try out the New Version of CLO</a></div>')
  } else {
    document.getElementsByClassName('grey-block')[0]
      .insertAdjacentHTML('afterend', '<div class="orange-block-2"><a href="http://clo2015.chineselearnonline.com/">Try out the New Version of CLO</a></div>')
  }
}
window.onload=function(){
var currentPage=[
'http://www.chineselearnonline.com/amember/member.php',
'http://www.chineselearnonline.com/amember/profile.php'
]
如果(当前页面索引为(2)=-1){
document.getElementsByClassName('grey-block')[0]
.INSERTADJACENTHML('afterend','')
}否则{
document.getElementsByClassName('grey-block')[0]
.INSERTADJACENTHML('afterend','')
}
}
但正如您所看到的:上面if中的代码仍在运行(显示带有
top:124px
的div)

我做错了什么


我从这个问题中提取了代码:

在您的代码中,您总是检查数组中数值2的索引,因为该值不存在,所以它将始终返回-1,因此始终执行if块

由于要检查当前页面的url,可以尝试查看数组中是否存在
document.url

window.onload = function () {
    var currentPage = [
        'http://www.chineselearnonline.com/amember/member.php',
        'http://www.chineselearnonline.com/amember/profile.php']

    if (currentPage.indexOf(document.URL) > -1) {
        document.getElementsByClassName('grey-block')[0].insertAdjacentHTML('afterend', '<div style="top:124px;" class="orange-block-2"><a href="http://clo2015.chineselearnonline.com/">Try out the New Version of CLO</a></div>')
    } else {
        document.getElementsByClassName('grey-block')[0].insertAdjacentHTML('afterend', '<div class="orange-block-2"><a href="http://clo2015.chineselearnonline.com/">Try out the New Version of CLO</a></div>')
    }
}
window.onload=函数(){
var currentPage=[
'http://www.chineselearnonline.com/amember/member.php',
'http://www.chineselearnonline.com/amember/profile.php']
if(currentPage.indexOf(document.URL)>-1){
document.getElementsByClassName('grey-block')[0].insertAdjacentHTML('afterend','')
}否则{
document.getElementsByClassName('grey-block')[0].insertAdjacentHTML('afterend','')
}
}

在您的代码中,您总是检查数组中数值2的索引,因为该值不存在,所以它将始终返回-1,因此始终执行if块

由于要检查当前页面的url,可以尝试查看数组中是否存在
document.url

window.onload = function () {
    var currentPage = [
        'http://www.chineselearnonline.com/amember/member.php',
        'http://www.chineselearnonline.com/amember/profile.php']

    if (currentPage.indexOf(document.URL) > -1) {
        document.getElementsByClassName('grey-block')[0].insertAdjacentHTML('afterend', '<div style="top:124px;" class="orange-block-2"><a href="http://clo2015.chineselearnonline.com/">Try out the New Version of CLO</a></div>')
    } else {
        document.getElementsByClassName('grey-block')[0].insertAdjacentHTML('afterend', '<div class="orange-block-2"><a href="http://clo2015.chineselearnonline.com/">Try out the New Version of CLO</a></div>')
    }
}
window.onload=函数(){
var currentPage=[
'http://www.chineselearnonline.com/amember/member.php',
'http://www.chineselearnonline.com/amember/profile.php']
if(currentPage.indexOf(document.URL)>-1){
document.getElementsByClassName('grey-block')[0].insertAdjacentHTML('afterend','')
}否则{
document.getElementsByClassName('grey-block')[0].insertAdjacentHTML('afterend','')
}
}

使用
window.location.href
检查当前页面是否与数组中的任何内容匹配:

window.onload = function() { 
    var currentPage = [
        'http://www.chineselearnonline.com/amember/member.php',
       'http://www.chineselearnonline.com/amember/profile.php'
    ]

    if (currentPage.indexOf(window.location.href) == -1 ) {
        document.getElementsByClassName('grey-block')[0]
  .insertAdjacentHTML('afterend', '<div style="top:124px;" class="orange-block-2"><a href="http://clo2015.chineselearnonline.com/">Try out the New Version of CLO</a></div>')
    } else {
        document.getElementsByClassName('grey-block')[0]
  .insertAdjacentHTML('afterend', '<div class="orange-block-2"><a href="http://clo2015.chineselearnonline.com/">Try out the New Version of CLO</a></div>')
    }
}
window.onload=function(){
var currentPage=[
'http://www.chineselearnonline.com/amember/member.php',
'http://www.chineselearnonline.com/amember/profile.php'
]
if(currentPage.indexOf(window.location.href)=-1){
document.getElementsByClassName('grey-block')[0]
.INSERTADJACENTHML('afterend','')
}否则{
document.getElementsByClassName('grey-block')[0]
.INSERTADJACENTHML('afterend','')
}
}

使用
window.location.href
检查当前页面是否与数组中的任何内容匹配:

window.onload = function() { 
    var currentPage = [
        'http://www.chineselearnonline.com/amember/member.php',
       'http://www.chineselearnonline.com/amember/profile.php'
    ]

    if (currentPage.indexOf(window.location.href) == -1 ) {
        document.getElementsByClassName('grey-block')[0]
  .insertAdjacentHTML('afterend', '<div style="top:124px;" class="orange-block-2"><a href="http://clo2015.chineselearnonline.com/">Try out the New Version of CLO</a></div>')
    } else {
        document.getElementsByClassName('grey-block')[0]
  .insertAdjacentHTML('afterend', '<div class="orange-block-2"><a href="http://clo2015.chineselearnonline.com/">Try out the New Version of CLO</a></div>')
    }
}
window.onload=function(){
var currentPage=[
'http://www.chineselearnonline.com/amember/member.php',
'http://www.chineselearnonline.com/amember/profile.php'
]
if(currentPage.indexOf(window.location.href)=-1){
document.getElementsByClassName('grey-block')[0]
.INSERTADJACENTHML('afterend','')
}否则{
document.getElementsByClassName('grey-block')[0]
.INSERTADJACENTHML('afterend','')
}
}

对不起。。你什么意思?您的意思是,如果当前页面的url与数组中的某个条目匹配,则希望if块executed@ArunPJohny是的,我会说得更好。因为currentPage数组只有两个元素,currentPage.indexOf(2)==-1将计算为真,因此将执行第一个if块。@TechMa9iac因此添加第三个if块将解决问题?
currentPage。indexOf(2)
它将检查数组中不存在的条目为“2”,这意味着它将始终返回-1,并且它将针对您的条件为真,并且它将仅在条件存在时执行。。它永远不会落在我的心上。。你什么意思?您的意思是,如果当前页面的url与数组中的某个条目匹配,则希望if块executed@ArunPJohny是的,我会说得更好。因为currentPage数组只有两个元素,currentPage.indexOf(2)==-1将计算为真,因此将执行第一个if块。@TechMa9iac因此添加第三个if块将解决问题?
currentPage。indexOf(2)
它将检查数组中不存在的条目为“2”,这意味着它将始终返回-1,并且它将针对您的条件为真,并且它将仅在条件存在时执行。。在其他情况下,它永远不会落下