控制台或JsLint中没有弹出“真实”错误。我个人更喜欢在HTML中使用onclick,但作为调试的一部分,我切换到$("#buttonID1").click()
。我不知道代码有什么问题。这里的实时版本DEMO
输入: Amazon_Laser_BobtheBodyBuilder_07-11-13.xls
预期输出: | - \ n |亚马逊\ N |激光\ N | BobtheBodyBuilder \ N | 2013年7月7日\ n
实际输出:什么都没有!
JS
function emptyText() {
$('#textinput').val('');
$('#textoutput').val('');
}
$("#buttonID1").click(function(){
var input = document.getElementById('textinput').value;
var lines = input.split('\n');
var output = '';
$.each(lines, function(key, line) {
var results = line.split(/[_\.]/);
if(results!==null && results.length!== 0)
{
var a = '|-\n| '+results[0]+'\n';
var b = '| '+results[1]+'\n';
var c = '| '+results[2]+'\n';
var d = results[3];
var e = '| '+results[4]+'\n';
var date = d.split(/[\-]/);
var mm = date[0];
var dd = date[1];
var yy = date[2];
var month = '';
switch(mm){
case "01":
month='Jan';
break;
case "02":
month='Feb';
break;
case "03":
month='Mar';
break;
case "04":
month='Apr';
break;
case "05":
month='May';
break;
case "06":
month='June';
break;
case "07":
month='Jul';
break;
case "08":
month='Aug';
break;
case "09":
month='Sep';
break;
case "10":
month='Oct';
break;
case "11":
month='Nov';
break;
case "12":
month='Dec';
break;
default:
break;
}
switch(yy){
case "10":
yy='2010';
break;
case "11":
yy='2011';
break;
case "12":
yy='2012';
break;
case "13":
yy='2013';
break;
default:
break;
}
var date2 = '| '+month+' '+dd+', '+yy+'\n';
output += a+b+c+date2+e;
}
});
});
HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>title</title>
<link rel=href="https://dl.dropboxusercontent.com/u/101322542/Public%20Codes/mister%20table/Part%202%20-%20tokenizer/tokenizer.css" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script>
<script src="https://dl.dropboxusercontent.com/u/101322542/Public%20Codes/mister%20table/Part%202%20-%20tokenizer/tokenizer.js" type="text/javascript"></script>
</head>
<body>
<p class="left">Put your variables here:</p>
<textarea rows="4" cols="40" id="textinput">
</textarea>
<br>
<button type="button" id="buttonID1">AutoType</button>
<button type="button" id="buttonID2" onclick="emptyText()">Clear</button>
<p class="right">Output:</p>
<textarea rows="4" cols="40" id="textoutput">
</textarea>
</body>
</html>
CSS
#textinput{
background-color:#285c00;
color:white;
}
#textoutput{
background-color:#285c00;
color:white;
}
答案 0 :(得分:3)
您忘记使用您构建的字符串。在函数末尾添加:
$('#textoutput').val(output);
这不是核心问题,但您可以在一些地方使代码更简单。
例如这个块
switch(yy){
case "10":
yy='2010';
break;
case "11":
yy='2011';
break;
case "12":
yy='2012';
break;
case "13":
yy='2013';
break;
default:
break;
}
可以替换为
yy = parseInt(yy, 10);
if (yy<100) yy+=2000;
(这是一个数字,适合处理数字,如果你愿意,你可以使用''+yy
再次将它作为一个字符串。)
答案 1 :(得分:2)
您应该将最后一行更改为;
output += a+b+c+date2+e;
$('#textoutput').val(output);
答案 2 :(得分:1)
您需要使用按钮实际添加文本。 所以,基本上,你忘记了这一行:
document.getElementById('textoutput').value = output;
这一行之后:
output += a+b+c+date2+e;
在JavaScript文件中