反转姓氏和名字并删除逗号

时间:2019-11-30 11:58:40

标签: jquery

有没有办法让我们不要单选按钮,而是自动执行javascript? 我看到我正在使用.click函数,需要使用哪个命令来自动执行它? 谢谢你的建议。

$(document).ready(function () {
    $("input[name='change_last_first']").click(function () {
        $(".name").each(function() {            
            var revName = $(this).text().split(" ").reverse().join(" ");
            $(this).text(revName);
            });
        });
    });
    
   	function name(str) {
    return(str.replace(/,/g,''));
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input name="change_last_first" value="first" type="radio" >First Last, 
    <table>
        <thead>
                <tr>
                <th>Name</th>
            </tr>         
        </thead>       
         <tbody>
            <tr>
                <td class="name">Willis, James</td>
            </tr>
            <tr>
                <td class="name">Handson Willis</td>
            </tr>
            <tr>
                <td class="name">Anderson, Sarah</td>
            </tr>
            <tr>
                <td class="name">Pandora, Jim</td>
            </tr>            
        </tbody>
    </table>

1 个答案:

答案 0 :(得分:2)

要使其在加载时起作用,只需删除click()处理程序,然后将each()逻辑直接放在document.ready处理程序中即可。

话虽如此,您可以通过为text()提供一个对集合中所有元素进行迭代的函数来改善逻辑。此函数接受元素的当前文本值作为参数,您可以对其进行修改并用于返回新值。最后,您可以用逗号空格split()来删除文本,以便删除当前代码在某些情况下留下的结尾逗号。

话虽如此,尝试一下

jQuery(function($) {
  $(".name").text(function(i, t) {
    return t.split(/,|\s/).reverse().join(" ");
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
  <thead>
    <tr><th>Name</th></tr>
  </thead>
  <tbody>
    <tr><td class="name">Willis, James</td></tr>
    <tr><td class="name">Handson Willis</td></tr>
    <tr><td class="name">Anderson, Sarah</td></tr>
    <tr><td class="name">Pandora, Jim</td></tr>
  </tbody>
</table>

相关问题