2011-10-17 2 views
-1

id bob이있는 링크를 클릭하면 채팅을 닫고 아래에 표시된 숨겨진 입력 값을 제공합니다.링크/버튼이있는 요소에서 자바 스크립트로 값 가져 오기

<div id="chat" class="chat"> 
    <div id="ch" class="ch"> 
     <label id="name1">bob</label> 
     <a id="bob" onclick="closechat(this.id)">x</a> <--- LINK I CLICK ON 
    </div> 
    <input type="hidden" name="to" id="to" value="bob"> <-- HIDDEN VALUE I WANT 
    <input type="hidden" id="chatboxid" value="chatbox"> 
    <div class="chatbox" id="chatbox" style="display: none; "> 
     <div class="messages"></div> 
     <textarea name="message" id="message" class="chatinp" rows="3" cols="27"> 
     </textarea> 
     <button class="send" onclick="submitmessage()">Send</button> 
    </div> 
</div> 

링크 내가 클릭 나에게 사용자의 ID 인 ID를 제공 한 후 그 chatbox 을 닫습니다하지만이 필요한 ID의 값을 저장으로 나는 그래서 난 를 사용할 수있는 숨겨진 가치를 필요 JQUERY 닫으십시오.

오 이런 식으로 클론이 생기므로 요소 ID는 복제 할 때마다 계속 변경됩니다. 당신이 (당신의 HTML에서 알 수 있듯이) id 속성을 복제하는 경우, 비록

function closechat(id) { 
    var value_you_want = $('#' + id).closest('.chat').find('input[name=to]').val(); 
    //... 
} 

에주의 제라드의 의견에 :

+2

당신은 ID' 속성 값을'다시 사용할 수 없습니다; 그들은 유일해야합니다. 자신에게 유리하게'div # chat' 엘리먼트를'ID' 유니크로 만들고'rel = "chat111"'을 부모'.chat' 엘리먼트의'ID'와 동일하게 넣으십시오. '.chat' 태그를'a' 태그에서 횡단 할 수는 있지만, 아마도 불필요합니다. –

+0

질문에 대한 답변입니다 –

+0

내 의견이나 다른 방법으로? –

답변

0

<a id="bob">id 속성이 고유한지 가정 할 때, 당신은 당신 closechat 함수 내에서이 작업을 수행 할 수 이상한 버그를 재현하기 위해 세계에 묻습니다. id 속성 이어야하며 각 페이지 내에서 고유해야합니다. 또한 onclick 속성을 사용하면 꽤 오래된 학교입니다.

<div class="chat"> 
    <div class="ch"> 
     <label>bob</label> 
     <a class="closechat">x</a> <--- LINK I CLICK ON 
    </div> 
    <input type="hidden" name="to" value="bob"> <-- HIDDEN VALUE I WANT 
    <div class="chatbox" style="display: none; "> 
     <div class="messages"></div> 
     <textarea name="message" class="chatinp" rows="3" cols="27"> 
     </textarea> 
     <button class="send">Send</button> 
    </div> 
</div> 

<script type="text/javascript"> 
    $('a.closechat').click(function() { 
     // what closechat() does goes here and it should use 
     // `this.id` instead of getting an argument. 
    }); 
    $('button.send').click(function() { 
     // What submitmessage() does goes here, it too looks at 
     // `this` to to figure out where it is and which <textarea> 
     // to use. 
    }); 
</script> 

참고 : 귀하의 HTML은 다음과 같이보고 더 나을 것

관련 문제