2013-05-21 1 views
0

을 나는 아래의 HTML 샘플을사업부를 삭제하고 숨겨진 필드 값을 얻을 - 가장 좋은 방법

<div id="TestDiv_0"> 
    <input id="hf_0" type="hidden" value="0"> 
    <span class="checkBox checked"> 
</div> 
<div id="TestDiv_1"> 
    <input id="hf_1" type="hidden" value="10"> 
    <span class="checkBox checked"> 
</div> 
<div id="TestDiv_2"> 
    <input id="hf_2" type="hidden" value="23"> 
    <span class="checkBox"> 
</div> 

동적 HTML을 가지고 JQUERY 사용하여 몇 가지 논리를 구현하기 위해 노력하고

암 성장을 할 수 있습니다.

스팬 클래스 .I이 (여러 범위를 선택하면) 쉼표 Seprated 필드에 유형 = "숨겨진"값 받기 2 일

  1. 를 구현해야 확인할 경우 시나리오가 입니다. 예 : 위 HTML에서 변수 0,10을 가져와야합니다.

  2. 특정 Div를 제거하십시오. 예 : 위의 HTML에서 TestDiv_0, TestDiv_1을 제거해야합니다.

이것을 구현하는 가장 좋은 방법은 무엇입니까? div 수를 구하고 클래스를 찾아 Div를 제거하기 위해 반복했습니다. 그러나 더 좋은 방법이있을 것이라고 생각했습니다.

+0

뿐만 아니라 당신의 자바 스크립트 코드를 붙여 넣습니다. – Roopendra

+0

모든 스팬의 스팬 태그를 닫기 위해 HTML이 없습니다. – j08691

답변

6
var arr = $('span.checked').map(function(){ 
    var id = $(this).siblings("input[type='hidden']").val(); 
    $(this).closest('div').remove(); 
    return id; 
}).get().join(','); 

데모 -->http://jsfiddle.net/pEnDY/

+0

나는 당신의 접근법을 좋아하지만,'.get()'이 무엇이고, 왜 그것 없이는 작동하지 않는지 물어볼 수 있습니까? –

+0

(http://api.jquery.com/get/) : jQuery 객체와 일치하는 DOM 요소를 검색하십시오. '.mget()'에 의해 반환 된 jquery 객체로부터 일반 배열을 얻기 위해'.get()'이라고하는 dom 요소 –

+0

을 선택하여 반환하고 그 배열을'.join (',')' –

1

이 시도 :

var values = []; 

// get all spans with class 'checked' 
$('div > span.checked').each(function() { 

    // get the hidden field value 
    values.push($(this).prev('[type="hidden"]').val(); 

    // remove the div containing this span 
    $(this).parent().remove(); 

}); 

// get comma separated values 
values = values.join(','); 
2

DEMO

var checkedItems=[]; 
function handleChecked(){ 
    $("span.checked").each(function(){ 
     checkedItems.push($(this).siblings("input[type='hidden']").val()); 
     $(this).parent().remove(); 
    }); 
    console.log(checkedItems); 
} 
handleChecked(); 
관련 문제