我怎样才能在javascript上隐藏一个参数?

时间:2015-07-07 10:54:14

标签: javascript jquery

现在我的代码将隐藏index.html,但我也想隐藏highlight.html。我已尝试添加+' highlight.html'但它没有用。

喜欢这个if (fsStructure[strPath].subshtmls[i] != 'index.html' + 'highlighted.html'){

if ( fsStructure[strPath].subshtmls.length > 0 ) {
for(var i=0; i < fsStructure[strPath].subshtmls.length; i++) {
    if (fsStructure[strPath].subshtmls[i] != 'index.html'){
    nextOneSelectorHtml += 
      '<option ' + 
        'class="html-page-option" ' + 
        'data-html-page-name="' + fsStructure[strPath].subshtmls[i] + '">' + 
          fsStructure[strPath].subshtmls[i] + 
      '</option>';
    }else{playSwf( strPath+'/index.html');}
}
}

现在我的代码看起来像这样:

但如果我尝试两次使用这一行,那么它将不再加载html,我唯一想要的就是隐藏它们。

在这里我可以隐藏这两个,但我仍然可以从第二个参数中看到highlight.html。

if (fsStructure[strPath].subshtmls[i] != 'highlighted.html' && fsStructure[strPath].subshtmls[i] != 'index.html'){

if ( fsStructure[strPath].subshtmls.length > 0 ) {
    for(var i=0; i < fsStructure[strPath].subshtmls.length; i++) {
        if (fsStructure[strPath].subshtmls[i] != 'highlighted.html' && fsStructure[strPath].subshtmls[i] != 'index.html'){
        nextOneSelectorHtml += 
          '<option ' + 
            'class="html-page-option" ' + 
            'data-html-page-name="' + fsStructure[strPath].subshtmls[i] + '">' + 
              fsStructure[strPath].subshtmls[i] + 
          '</option>';
        }else{high( strPath+'/highlighted.html');}
    }
  }

  if ( fsStructure[strPath].subshtmls.length > 0 ) {
    for(var i=0; i < fsStructure[strPath].subshtmls.length; i++) {
        if (fsStructure[strPath].subshtmls[i] != 'index.html'){
        nextOneSelectorHtml += 
          '<option ' + 
            'class="html-page-option" ' + 
            'data-html-page-name="' + fsStructure[strPath].subshtmls[i] + '">' + 
              fsStructure[strPath].subshtmls[i] + 
          '</option>';
        }else{playSwf( strPath+'/index.html');}
    }
  }

1 个答案:

答案 0 :(得分:1)

不确定此代码应该如何工作,但对于if子句中的AND逻辑操作,您应该使用&&运算符:

if (fsStructure[strPath].subshtmls[i] != 'index.html'
   && fsStructure[strPath].subshtmls[i] != 'highlighted.html') {
   ...

上述意思是“如果值不是'index.html'并且它不是'highlight.html'”。

为了使它更具可读性 - 因为你要使用文件名两次,你可以引入一个辅助变量:

var fileName = fsStructure[strPath].subshtmls[i];
if (fileName != 'index.html' && fileName != 'highlighted.html') {
  ...

您尝试使用的+运算符不起作用的原因是,它会连接两个字符串,然后将它们与值进行比较。所以:

if (fsStructure[strPath].subshtmls[i] != 'index.html' + 'highlighted.html'){

具有与以下相同的效果:

if (fsStructure[strPath].subshtmls[i] != 'index.htmlhighlighted.html'){