0

尝试获取这张表并获取名称,当我单击一个单选按钮时,它会将名称从以下内容更改:汤姆汉克斯到汉克斯,汤姆。这是html:

<h1>Address Book</h1>

Show Names as:
<input name="change_last_first" value="last" type="radio">First, Last
<input name="change_last_first" value="first" type="radio">Last, First
<div>
    <table <thead="">
        <tbody>
            <tr>
                <th>ID</th>
                <th>Name</th>
                <th>Email</th>
            </tr>
        </tbod
        <tbody>
            <tr>
                <td>9001</td>
                <td class="name">Tom Hanks</td>
                <td>tomhanks@moviestars.com</td>
            </tr>
            <tr>
                <td>9002</td>
                <td class="name">Bruce Willis</td>
                <td>brucewillis@moviestars.com</td>
            </tr>
            <tr>
                <td>9003</td>
                <td class="name">Jim Carrey</td>
                <td>jimcarrey@moviestars.com</td>
            </tr>
            <tr>
                <td>9004</td>
                <td class="name">Tom Cruise</td>
                <td>tomcruise@moviestars.com</td>
            </tr>
            <script>

            </script>
        </tbody>
    </table>
</div>
<meta charset="utf-8">
<title>Interview Test</title>
<link rel="stylesheet" href="./webassets/style.css" media="screen" type="text/css">
    <h1>Company Staff List</h1>

<div>
    <table>
        <thead>
            <tr>
                <th>ID</th>
                <th>Name</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>9001</td>
                <td>Tom Hanks</td>
            </tr>
            <tr>
                <td>9002</td>
                <td>Bruce Willis</td>
            </tr>
            <tr>
                <td>9003</td>
                <td>Jim Carrey</td>
            </tr>
            <tr>
                <td>9004</td>
                <td>Tom Cruise</td>
            </tr>
        </tbody>
    </table>
</div>

这是jquery,它是我能想到的,但根本不起作用。:(

$(document).ready(function () {
    $("input[name='change_last_first']").click(function () {
        $(".name").text(function() {
            $(this).split(" ").reverse();
            });
        });
    });
});
4

2 回答 2

2

你需要return结果。此外,由于您使用的是函数 arg 语法,text因此将函数的第二个参数用于当前文本。

    $(".name").text(function(_, cur) {
         return curText.split(/\s+|,/).reverse();
    });

小提琴

假设 name 的一般格式是First Lastor ,另一种简单的处理方法是Last, First

 $("input[name='change_last_first']").change(function () {
        var arr = [" ", ","],
            sep = this.value === 'first' ? 0 : 1;
        $(".name").text(function (_, curText) {
            return curText.split(arr[sep % 2]).reverse().join(arr[(sep + 1) % 2]);
        });
    });

演示

于 2013-10-18T03:06:09.167 回答
0

为此,您需要split使用空格的全名,而不是可以使用reverse().

注意:因为reverse()是数组实例的方法。它不会直接作用于字符串。您应该首先将字符串的字符拆分为一个数组,将数组反转,然后重新连接成一个字符串。

$("input[name='change_last_first']").click(function () {
      $(".name").each(function() {            
          var revName = $(this).text().split(" ").reverse().join(" ");
          $(this).text(revName);
      });
});

尝试这个

于 2013-10-18T04:17:59.650 回答