If Else, Else If, Else - 基于 URL 中的字符串

Posted

技术标签:

【中文标题】If Else, Else If, Else - 基于 URL 中的字符串【英文标题】:If Else, Else If, Else - Based on String In URL 【发布时间】:2014-05-20 11:31:33 【问题描述】:

你好, 我试图让我的 javascript 识别每个页面上的文件夹。根据文件夹名称,我想使用 if else 语句将该文件夹名称添加到我的 innerhtml 中。我无法让它与 if else、else if、else 语句一起运行。

这是 HTML sn-p:

<div id="countryVal"></div>

还有 javascript:

var outputData = document.getElementById('clothingVal');

if (window.location.search.search(/Men/)) 
document.getElementById('clothingVal');
outputData.innerHTML = outputData.innerHTML + ': ' + 'Australia';


else if (window.location.search.search(/Women/)) 
document.getElementById('clothingVal');
outputData.innerHTML = outputData.innerHTML + ': ' + 'New Zealand';


else outputData.innerHTML = outputData.innerHTML + ': ' + '';
;

非常感谢任何建议。

【问题讨论】:

无法理解您要完成的工作。只是document.getElementById('clothingVal'); 的行什么也不做。 嗯...JS有'clothingVal',HTML有"countryVal" 【参考方案1】:

没有必要,但 switch 可能比 if elseif else 更好。我发现它们更易于管理,当您将来可能想要放置一个新过滤器时。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch

但是保留当前代码,您应该清理变量以使其更具可读性。您还应该将此代码放在 onload 或 onready 语句中。并且也许我们 indexOf 超过了正则表达式(你需要逃避反斜杠才能找到它们像 /\/Men\// 这样会变得混乱)How to check whether a string contains a substring in JavaScript? p>

这是未经测试的,但应该与您所追求的一致。

window.onload = function() 
    var outputData = document.getElementById('clothingVal');

    if ( window.location.indexOf("/Men/") != -1 ) 
        outputData.innerHTML = outputData.innerHTML + ': ' + 'Australia';
     else if ( window.location.indexOf("/Women/") != -1 ) 
        outputData.innerHTML = outputData.innerHTML + ': ' + 'New Zealand';
     else 
        outputData.innerHTML = outputData.innerHTML + ': ' + '';
    ;

【讨论】:

以上是关于If Else, Else If, Else - 基于 URL 中的字符串的主要内容,如果未能解决你的问题,请参考以下文章

if...else if...else和switch语句的注意点,以及和js的if...else if...else的不同

html 基本IF,IF - ELSE和IF - ELSE IF - ELSE语句。

为啥JAVA源码中if else大都省略else,怎样的条件能够省去else?

R语言中的if else语句

if else if else if else 的用法

if和else在程序中的位置关系