2015-02-01 4 views
3

나는 td 값을 가져 와서 텍스트 상자에 출력하고 싶지만 td에는 jstl 값이 있으므로 arraylist에서 첫 번째 값을 얻지 만 사용자가 그것을 클릭하면 현재 값을 얻고 싶습니다. 아무도 도와 드릴 수 있습니까?자바 스크립트에 의해 td jstl 값을 얻으십시오

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

입력 텍스트 및 TD

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

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

답변

4

당신은 클릭 된 this 인 요소의 HTML 가지고 가야 다음 live() 방법이되지 않습니다 것을

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

주 . 대신 on을 사용해야합니다. 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; 
관련 문제