我正在做一个简单的字母化程序,但是问题是它没有正确地排序。
$(document).ready(function() {
var txt = $(".input-text");
$(".alphabetize").on("click", function() {
txt.val(txt.val().split(" ").sort().join(" "));
});
});<!DOCTYPE html>
<html>
<head>
<title>Alphabetizer</title>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=9" />
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
<a class="alphabetize" href="javascript:void(0)">Alphabetize</a><br />
<textarea class="input-text" placeholder="Alphabetize your text here...">China
India
United States of America
Indonesia
Brazil
Pakistan
Nigeria
Bangladesh
Russia
Japan
Mexico
Philippines
Ethiopia
Vietnam
Egypt
Germany
Iran
Turkey
Democratic Republic of the Congo
France</textarea>
</body>
</html>
发布于 2015-03-01 10:01:36
您应该将文本拆分为新行(\n)。
$(document).ready(function() {
var txt = $(".input-text");
$(".alphabetize").on("click", function() {
txt.val(txt.val().split("\n").sort().join("\n"));
});
});<!DOCTYPE html>
<html>
<head>
<title>Alphabetizer</title>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="IE=9" />
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>
<a class="alphabetize" href="javascript:void(0)">Alphabetize</a><br />
<textarea class="input-text" placeholder="Alphabetize your text here...">China
India
United States of America
Indonesia
Brazil
Pakistan
Nigeria
Bangladesh
Russia
Japan
Mexico
Philippines
Ethiopia
Vietnam
Egypt
Germany
Iran
Turkey
Democratic Republic of the Congo
France</textarea>
</body>
</html>
还有。虽然您的示例没有必要(因为所有的行都以大写字母开头),但您应该知道.sort()是区分大小写的,因此"AbCdEf“将被排序为"ACEbdf”。
要使其不区分大小写,可以将排序方法作为参数传递,其中比较字符串.toLowerCase():
// ...
txt.val(txt.val().split("\n").sort(caseInsensitive).join("\n"));
// ...
function caseInsensitive(a, b) {
return a.toLowerCase().localeCompare(b.toLowerCase());
}https://stackoverflow.com/questions/28792203
复制相似问题