Javascript 循环遍历数组的If语句无效
如果当前页面的URL与条目数组匹配,则应执行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(
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,并且它将针对您的条件为真,并且它将仅在条件存在时执行。。在其他情况下,它永远不会落下