2014-04-30 3 views
0

요소를 JQuery에서 형제와 동일한 값으로 설정하려고합니다.함수에서 JQuery에서 형제 요소를 가져 오는 방법은 무엇입니까?

나는 필드의 번호와 테이블이 있고, 내가 편집 버튼을 클릭 할 때 나는 이웃의 IT에 레이블의 값을 복사 할 입력 필드 원하는 :

<table style="width:90%"> 
    <tr> 
    <td>Start</td> 
    <td> 
     <span ID="lblSprintStart" class="staticField">01/01/2001</span> 
     <input class="editableField" id="sprintStart" /> 
    </td> 
    </tr> 
    <tr> 
    <td>End</td> 
    <td> 
     <span ID="lblSprintEnd" class="staticField">02/02/2002</span> 
     <input class="editableField" id="sprintEnd" /> 
    </td> 
    </tr> 
</table> 
<button id="editButton">Edit</button> 

내가 대상으로 그것을 할 수 있습니다 각 요소 별 ID :

$(function() { 
$("#editButton") 
    .click(function (event) { 
    event.preventDefault(); 
    editMode(); 
}); 
}); 

function editMode() {  
    $("#sprintStart").val($("#sprintStart").siblings(".staticField").html()); 
} 

그러나 모든 필드가 업데이트되도록 클래스별로 수행하려고합니다.

function editMode() {  
    $(".editableField").val($(this).siblings(".staticField").html()); 
} 

http://jsfiddle.net/QQLvX/1/

+0

http://jsfiddle.net/QQLvX/2/ 당신은 '이유있는'한 EditMode에 this'()'기능을 전달하지 않는 – Satpal

+0

'this'를 사용하려고하는'editMode()'의 두 번째 버전은'this'가 각 함수 호출에서 재설정되기 때문에 작동하지 않습니다. 'editMode (where)'에 인수로 시작점을 전달하고이를 사용하는 것이 좋습니다. – jfriend00

답변

2

당신은 .val(function(index, value))

을 사용할 수 있습니다 : 나는 $ (이) 선택기를 사용하여 기능을 변경하고 클래스에 의해 그것을 할 경우 작동하지 않습니다

값을 설정하여 반환하는 함수. 이것은 현재 요소입니다. 집합에있는 요소의 인덱스 위치와 이전 값을 인수로받습니다.

코드

$(".editableField").val(function(){ 
    return $(this).siblings(".staticField").html(); 
}); 

DEMO

1

사용 .each()

$('.editableField').each(function(){ 
    $(this).val($(this).siblings(".staticField").html()); 
}); 
관련 문제