Javascript开关
我正在制作一个黄道带日历,需要一个0-11的符号开关。我已经编写了HTML代码,该代码会在月份下拉,并在年度中输入文本。该标志应使用id“output”,并应显示在文本中。我不确定我是否正确使用了开关,我的数学是否导致了问题,或者为什么它没有发送到输出 HTML代码:Javascript开关,javascript,switch-statement,case,Javascript,Switch Statement,Case,我正在制作一个黄道带日历,需要一个0-11的符号开关。我已经编写了HTML代码,该代码会在月份下拉,并在年度中输入文本。该标志应使用id“output”,并应显示在文本中。我不确定我是否正确使用了开关,我的数学是否导致了问题,或者为什么它没有发送到输出 HTML代码: <div><label for="sign">Sign</label><input type="text" name ="sign" id
<div><label for="sign">Sign</label><input type="text"
name ="sign" id="sign"></div>
Javascript代码
if (year && year.value && (year.length == 4)){
year = parseInt(years.value);
month = parseInt(month.value);
if (month < 2) {
year = (year - 1);
}
year = ((year - 1924) % 12);
} else { // Show Error:
document.getElementById('year').value =
'Please enter valid values.';
}
switch (year){
case 0 :
block code;
break;
etc..
} // End Switch
if (output.textContent != undefined) {
output.textContent = sign;
} else {
output.innerText = sign;
}
return false;
}
问题应该是由域检查而不是计算函数引起的 请删除域检查,然后重试,看看它是否有效 错误: 1如果year&&year.value&&year.value.length==4{ 年份=parseIntyear.value
2主html未声明元素输出正则表达式可能与小写url不匹配。如果出现这种情况,结果将为null 您应该在使用匹配结果之前检查它。类似于以下内容:
var matches = url.toLowerCase().match(/https?:\/\/(.+?)[?#\/$]/);
if (!matches || matches.length < 2) {
// Handle error
...
} else {
// Keep going
var domain = matches[1];
...
}
另外,请验证正则表达式是否确实执行了您想要的操作。因为我的javascript代码是innerText
if (output.textContent != undefined) {
output.textContent = sign;
} else {
output.innerText = sign;
}
我不得不删除
<div><label for="sign">Sign</label><input type="text"
name ="sign" id="sign"></div>
并将其替换为
<p>Sign: <span id="output"></span></p>
我可以很容易地更改javascript代码和文档。getElementID'output'=sign.value;你能展示一下你是如何导出url的吗?仅供参考,用数组替换switch语句不是更简单吗?var signs=['Rat','Ox',…];sign=signs[year];我必须使用switch语句。此外,我的代码中没有派生任何URL。我不知道为什么会不断出现此错误。我没有在代码中添加任何域检查?或者我认为我没有。我的html代码中唯一的一件事是你能提供html以便我可以重复此问题吗?谢谢Charles,我也是通过删除year.value.len得出此结论的th==4部分,然后将输出放在html中。使用F12开发工具IE或Chrome,您可以轻松调试JavaScript。到目前为止,我发现了这个代码错误,并对其进行了更正,但仍然没有任何结果:year=parseIntyears.value;好的,我让它开始工作,我意识到我的html代码也试图拉符号而不是输出。我有一个JavaScript代码可以使用span因此,我在html中添加了一个,id='output',而不是标签signI,我刚要说的是您没有输出元素。我很高兴您自己发现了这一点。因此我认为我的firefox浏览器有问题,因为错误不是来自我的代码文件。它指出了这一点。。。