2015-02-01 3 views
3

Я хочу получить значение td и распечатать его в текстовое поле, но td имеет значение jstl, чтобы получить первое значение в arraylist, но я хочу получить текущее значение в td, когда пользователь нажмет на него. Может ли кто-нибудь помочь мне, как я могу это сделать?получить значение td jstl по javascript

$(document).ready(function() { 
    $("div.contacts table td").live('click', function() { 
    document.getElementById("contactName").value= 
     document.getElementById("contactId").innerHTML; 
    }); 
}); 

ввод текст и тд

<input type="text" id="contactName"> 

<td id="contactId">{{contact.email}}</td> 

ответ

4

Вы должны взять HTML из щелкнутого элемента, который this:

$(document).ready(function() { 
    $("div.contacts table td").live('click', function() { 
    $("#contactName").val($(this).text()); 
    }); 
}); 

Обратите внимание, что метод live() устарело , Вместо этого вы должны использовать on.


Demo, используя on:

$(document).ready(function() { 
 
    $("div.contacts").on('click', "table td", function() { 
 
    $("#contactName").val($(this).text()); 
 
    }); 
 
});
td { 
 
    cursor: pointer; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" id="contactName"> 
 
<div class="contacts"> 
 
    <table> 
 
    <thead> 
 
     <tr> 
 
     <th>Name</th> 
 
     </tr> 
 
    </thead> 
 
    <tbody> 
 
     <tr> 
 
     <td>Alice</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Bob</td> 
 
     </tr> 
 
     <tr> 
 
     <td>Carol</td> 
 
     </tr> 
 
    </tbody> 
 
    </table> 
 
</div>

1

Вы используете свой код в обратном порядке:

document.getElementById("contactName").value= 
     document.getElementById("contactId").innerHTML; 

Должно быть:

 document.getElementById("contactId").innerHTML= 
     document.getElementById("contactName").value;