我用一些jQuery创建了一个HTML页面,但它并没有按照我的意愿去做:
1和2正在起作用,3也应该起作用。
我做到了:
<!DOCTYPE HTML>
<html>
<head>
<LINK href="layout.css" rel="stylesheet" type="text/css">
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<script type="text/javascript">
$(document).ready(function() {
var str = $("div.someText").text();
var specialChars = "!@#$^&%*()+=-[]\/{}|:<>?,.";
for (var i = 0; i < specialChars.length; i++) {
str = str.replace(new RegExp("\\" + specialChars[i], 'gi'), '');
}
str = str.replace(/["'“”…]{1}/gi,".");
str = str.replace(/[.*]{1}/gi," ");
str = str.toLowerCase();
var array = str.split(" ");
for(var i = 0; i < array.length(); i++) {
$("div.put").html(array[i] + "\n");
}
})
</script>
<div class="someText">
Een kerel gaat met zijn pas gekochte hond naar de dierenarts. Eindelijk is hij aan de
beurt en komt met zijn hond de behandelkamer binnen.......
“En?”, vraagt de dierenarts, “wat is het probleem?”. “Nou”, zegt de eigenaar van het beest,
“ik heb hem gekocht om te waken, maar elke keer als de bel gaat, dan gaat mijn hond in de hoek zitten”.
De dierenarts wrijft eens vakkundig over zijn kin en zegt tenslotte: “ja…dat doen boxers”.
</div>
<br />
<div class="put"></div>
</body>
</html>
但我必须做错事,因为div 2什么也没做。
有人可以告诉我为什么我的代码没有按预期工作吗?
答案 0 :(得分:2)
您遇到了各种各样的问题,但我在本演示中已经解决了这些问题:
array.length()
应为array.length
。这导致了致命的语义错误。str.split(str, ' ')
应为str.split(' ')
。第一个参数是要拆分的字符串。.html("string')
每次都会覆盖HTML。我用一种方法更新了它,允许你追加html内容。如果它只是文本,您也可以使用.text
。如果您想要可见的换行符,请使用CSS white-space: pre
,或使用<br>
代替\n
。您也可以跳过循环并执行$("div.put").text(array.join("\n"));
答案 1 :(得分:1)
在var array = str.split(str," ");
行中,您使用了str.split()
的错误语法。如果您尝试拆分空格,则需要str.split(" ")
。我不确定你的代码目前用它做了什么,但我猜它会在控制台中抛出一个错误。
答案 2 :(得分:0)
for(var i = 0; i < array.length(); i++) {
$("div.put").html(array[i] + "\n");
}
这段代码将循环遍历你的数组,每次设置每个div的innerHTML,类“put”作为数组中索引的内容。
最后,它会将innerHTML设置为数组中最后一项的内容。其余的将被覆盖。
我怀疑你想使用jquery append添加每个项目然后结束。例如,您可以将其添加为每个标记的span标记。
我也不确定你的div是否真的有“put”类。这可能是也可能不是错误。