2013-10-18 52 views
0

我想選擇所有具有類「名稱」的元素,當我點擊一個單選按鈕時,它會翻轉最後和名字,所以:Hanks,Tom | |湯姆,漢克斯。以下是我迄今爲止:如何重新排列使用javascript和jquery的元素中的文本

HTML:

<h1>Address Book</h1> 

<p>Show Names as:</p> 
<input name="lastfirst" value="last" type="radio">First, Last 
<input name="firstfirst" value="first" type="radio">Last, First 
<div> 
    <table <thead=""> 
     <tbody> 
      <tr> 
       <th>ID</th> 
       <th>Name</th> 
       <th>Email</th> 
      </tr> 
     </tbody> 
     <tbody> 
      <tr> 
       <td>9001</td> 
       <td class="name">Tom Hanks,</td> 
       <td>[email protected]</td> 
      </tr> 
      <tr> 
       <td>9002</td> 
       <td class="name">Bruce Willis,</td> 
       <td>[email protected]</td> 
      </tr> 
      <tr> 
       <td>9003</td> 
       <td class="name">Jim Carrey,</td> 
       <td>[email protected]</td> 
      </tr> 
      <tr> 
       <td>9004</td> 
       <td class="name">Tom Cruise,</td> 
       <td>[email protected]</td> 
      </tr> 
      <script> 

      </script> 
     </tbody> 
    </table> 
</div> 
<meta charset="utf-8"> 
<title>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。我使用了.hide()的填充符,因爲除了選擇元素之外,我不知道如何執行此操作。只是一些提示會有所幫助。我不確定如何區分名字和姓氏。如果我能弄清楚如何簡單地將名字和姓氏換成一個變量,那麼我一定可以弄清楚其餘的。

$(document).ready(function(){ 
    $("input[name='lastfirst']").click(function(){ 
    $(".name").hide(); 
    }); 

    $("input[name='firstfirst']").click(function(){ 
    $(".name").hide(); 
    }); 
}); 

回答

1

則可以使用分裂功能input.split(/[ ,]+/);與正則表達式的輸入內的分隔每個 「字」 沿文本分開。 那麼你可以每個值賦給一個新變量

例如:

var a = array[0], b = array[1] 

從那裏,你可以將數組值到你選擇的任何命令。

2

DEMO

$(document).ready(function() { 
    $("input[name='change_last_first']:nth(0)").prop('checked', true) 
    $("input[name='change_last_first']").change(function() { 
     $(".name").text(function (_, old_txt) { 
      var new_txt = old_txt.split(' ').reverse(); 
      return new_txt.toString().replace(',,', ' ') + ','; 
     }); 
    }); 
}); 

HTML改變

<input name="change_last_first" value="last" type="radio">First, Last 
<input name="change_last_first" value="first" type="radio">Last, First 

參考

.text()

.change()

.replace()

.split()

.toString()

.reverse()

2

首先使用拆分它。 var splStr = input.split(/[ ,]+/);

現在concatinate使用input=splStr[1]+splStr[0];

相關問題