首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JQuery Textarea

JQuery Textarea
EN

Stack Overflow用户
提问于 2015-03-01 09:58:03
回答 1查看 91关注 0票数 3

我正在做一个简单的字母化程序,但是问题是它没有正确地排序。

代码语言:javascript
复制
$(document).ready(function() {
  var txt = $(".input-text");
  $(".alphabetize").on("click", function() {
    txt.val(txt.val().split(" ").sort().join(" "));
  });
});
代码语言:javascript
复制
<!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>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-01 10:01:36

您应该将文本拆分为新行(\n)。

代码语言:javascript
复制
$(document).ready(function() {
  var txt = $(".input-text");
  $(".alphabetize").on("click", function() {
    txt.val(txt.val().split("\n").sort().join("\n"));
  });
});
代码语言:javascript
复制
<!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()

代码语言:javascript
复制
// ...
txt.val(txt.val().split("\n").sort(caseInsensitive).join("\n"));
// ...

function caseInsensitive(a, b) {
    return a.toLowerCase().localeCompare(b.toLowerCase());
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28792203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档