2016-03-21 9 views
1

Ich bekomme Link-Werte mit einer Arraylist vor dem Anzeigen dann auf meinem Popup Jsp. Ich soll den Text erhalten, sobald der Link geklickt wird und ihn an die übergeordnete Seite übergeben ... Egal was ich mache, der Wert, der an den übergeordneten Jsp übergeben wird, ist nur der erste Wert im Array:Get Link-Name aus einer Liste von Links mit Javascript

Mein POPUP .jsp:

<% 
    ArrayList all = Locations.getAllLocations(); 
    int size = all.size(); 
%> 
<% 
    for (int i = 0; i < size; i++) { 
     ArrayList one = (ArrayList) all.get(i); 
%> 
    <tr style="height:30px; padding:4px;"> 
     <td><div align="center"><a href="" onclick="getTownValue()" id="tname"><%=(String) one.get(0)%></a></div></td> 
     <td><div align="center"><%=(String) one.get(1)%></div></td> 
     <td><div align="center"><%=(String) one.get(2)%></div></td> 
    </tr> 
<% }%> 

Das Display arbeitet gut, aber wenn ich auf die Links klicken erhalte ich nur den ersten Wert im Array. Was soll ich machen?

bearbeiten

Mein javascript:

<script type="text/javascript"> 
    function getTownValue() { 
     var t = document.getElementById('tname').innerHTML; //for innerhtml 
     window.opener.document.form1.location.value = t; 
     window.close(); 
    } 
</script> 

Antwort

2

ja, Sie müssen dieses Schlüsselwort verwenden, um den individuellen Wert der Verbindung zu erhalten.

Verwenden Sie den folgenden Code:

<% 
ArrayList all = Locations.getAllLocations(); 
int size = all.size(); 
%> 
<% 
for (int i = 0; i < size; i++) { 
    ArrayList one = (ArrayList) all.get(i); 
%> 
<tr style="height:30px; padding:4px;"> 
    <td><div align="center"><a href="" onclick="getTownValue(this)" id="tname">   <%=(String) one.get(0)%></a></div></td> 
    <td><div align="center"><%=(String) one.get(1)%></div></td> 
    <td><div align="center"><%=(String) one.get(2)%></div></td> 
</tr> 
<% }%> 

Bitte ersetzen Sie diese Javascript:

<script type="text/javascript"> 
function getTownValue(ths) { 
    var t = ths.innerHTML; //for innerhtml 
    window.opener.document.form1.location.value = t; 
    window.close(); 
    } 
    </script> 

hier verwendet i "ths" Wert für die individuelle Verbindung zu erhalten. Ich hoffe, es wird dir helfen.

1

Sie haben erste Wert im Array, weil alle Links die gleiche ID "tname" haben. Und wenn Sie auf den Link klicken - Javascript füllen Sie alle Links mit der ID "tname" finden Sie die erste.

+0

Oh! Ok, gibt es eine Möglichkeit, jedem Link eine eindeutige ID zuzuweisen? – ErrorNotFoundException

+0

Bitte überprüfen Sie dies - id = "tname + <% = (String) one.get (0)%>" Sie können eine eindeutige Iterations-ID zuweisen – Vnuuk

Verwandte Themen