2016-06-26 6 views
0

übergeben Hallo habe ich Probleme mit Rails & Javascript. Hier ist mein Tisch im Blick.Wie Text von Sicht zu Javascript

<table> 
    <thead> 
    <tr> 
     <th>No</th> 
     <th>Name</th> 
    </tr> 
    </thead> 
    <tbody> 
     <tr id="adminrow"> 
     <td> 
      1 
     </td> 
     <td> 
      <a href="#" id="select_name">John</a> 
     </td> 
     </tr> 
     <tr id="adminrow"> 
     <td> 
      2 
     </td> 
     <td> 
      <a href="#" id="select_name">Alex</a> 
     </td> 
     </tr> 
     <tr id="adminrow"> 
     <td> 
      3 
     </td> 
     <td> 
      <a href="#" id="select_name">Paul</a> 
     </td> 
     </tr> 
    </tbody> 
</table> 

und mein JS ist

$('#select_name').click(function(event){ 
    var username = $("#select_name").text(); 
    console.log(username); 
}); 

ich viele Namen in meinem Tisch, aber JS Vornamen in der Konsole gedruckt. Wie kann ich jeden Namen in der Tabelle zur Konsole drucken?

+0

was versuchen Sie zu lösen? – uzaif

+2

in js-Datei verwenden Sie diese 'var username = $ (this) .text()' hoffe, es funktioniert – uzaif

+0

@uzaif ich meine Tabelle Daten ist in Schleife Ich möchte alle Daten zu JS übergeben. Beispiel Name ist wie John, Alex, Wade, Paul ... var Benutzername ist wie John, Alex, Wade, Paul. Aber jetzt ist es nur John gedruckt. –

Antwort

2

Sie erstellen in der einzelnen Schleife N Links (nach der Anzahl der Benutzer) mit der gleichen select_name ID. Dein Javascript ist verwirrt, welches du wählen solltest. Versuchen Sie, eine Benutzer-ID zu Ihrer html select_name ID hinzuzufügen und passen Sie Ihr Javascript entsprechend an. Gleiches über Ihre andere ID adminrow.

oder einfach Ihre select_name ändern eine Klasse und nicht die ID sein:

.... 
%a{:href=>"#", :class=>"select_name"}=u.firstname 
.... 
$('.select_name').click(function(event){ .... 

Ok, ich bin Befestigung den vollständigen Code für Sie. Für mich funktioniert es ganz gut. Z.B. druckt nur den Namen nach dem Klicken auf den entsprechenden Link:

<table> 
<thead> 
    <tr> 
    <th>No</th> 
    <th>Name</th> 
    </tr> 
</thead> 
<tbody> 
    <tr class="adminrow"> 
     <td> 
     1 
     </td> 
     <td> 
     <a href="#" class="select_name">John</a> 
     </td> 
    </tr> 
    <tr class="adminrow"> 
     <td> 
     2 
     </td> 
     <td> 
     <a href="#" class="select_name">Alex</a> 
     </td> 
    </tr> 
    <tr class="adminrow"> 
     <td> 
     3 
     </td> 
     <td> 
     <a href="#" class="select_name">Paul</a> 
     </td> 
    </tr> 
</tbody> 
</table> 

<script type="text/javascript"> 
    $('.select_name').click(function(event){ 
    var username = $(this).text(); 
    console.log(username); 
    }); 
</script> 
+0

Wie kann ich das tun? –

+0

@NeoTeo: Die Antwort wurde angepasst. –

+0

Danke, aber es werden alle Daten gleichzeitig ausgedruckt. Ich möchte jeden Namen durch Klick auf Namen drucken –