2014-12-09 2 views
0

tablerow 데이터를 선택하는 효율적인 방법 : 각 행은 고유 한 ID를 가진 체크 박스를 가지고JQuery와 나는 같은 패턴의 여러 행이있는 테이블이

<tr role="row" class="even"> 
    <td><input type="checkbox" id="valj4"></td> 
    <td>Generell grupp</td> 
    <td><a href="/Home/DeviceDetails?uuid=2b9fe569-dd6a-403c-b973-fd577acf12b5">IKT Ipad11- Mirko</a></td> 
    <td>Grundinställningar</td> 
</tr> 

, 무슨의 목록을 얻을 수있는 가장 효율적인 방법이 될 것입니다 선택란이있는 행의 UUID. 나는 jQuery를 사용하고 싶다.

+2

지금까지 시도 해본 내용을 알려 주시기 바랍니다. – Lix

+0

필드에 클래스를 추가하고 foreach를 사용하여 반복하고 현재의 체크 상자 ID를 사용하여 원하는대로 조작 할 수 있습니다. – Periback

+0

전혀 시도한 적이 있습니까? 나는 그것이 효율성에 관한 것이 아니라 "그것을하는 방법"에 관한 것이라고 생각한다. – Regent

답변

3

$(function() { 
 
    var texts = []; 
 
    $('tr td:has(input:checkbox:checked) ~ td > a').each(function(i, e) { 
 
    texts.push($(e).attr('href')); 
 
    }); 
 
    $('#result').html(texts.join('<br/>')); 
 
    
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table> 
 
    <tr role="row" class="even"> 
 
    <td> 
 
     <input type="checkbox" id="valj4" checked> 
 
    </td> 
 
    <td>Generell grupp</td> 
 
    <td><a href="/Home/DeviceDetails?uuid=2b9fe569-dd6a-403c-b973-fd577acf12b5">IKT Ipad11- Mirko (...5)</a> 
 
    </td> 
 
    <td>Grundinställningar</td> 
 
    </tr> 
 
    <tr role="row" class="even"> 
 
    <td> 
 
     <input type="checkbox" id="valj4"> 
 
    </td> 
 
    <td>Generell grupp</td> 
 
    <td><a href="/Home/DeviceDetails?uuid=2b9fe569-dd6a-403c-b973-fd577acf12b6">IKT Ipad11- Mirko (...6)</a> 
 
    </td> 
 
    <td>Grundinställningar</td> 
 
    </tr> 
 
    <tr role="row" class="even"> 
 
    <td> 
 
     <input type="checkbox" id="valj4" checked> 
 
    </td> 
 
    <td>Generell grupp</td> 
 
    <td><a href="/Home/DeviceDetails?uuid=2b9fe569-dd6a-403c-b973-fd577acf12b7">IKT Ipad11- Mirko (...7)</a> 
 
    </td> 
 
    <td>Grundinställningar</td> 
 
    </tr> 
 
</table> 
 
<div id="result"/>

이 UUID가 다음 문자열을 자르고에서 쉬운 운동이다 얻기보십시오.

+0

@Lix : 예, 결과를 작성하고 표시하는 것이 가장 빠릅니다. 좋네요. – Amadan

+1

링크를 얻는 아주 좋은 선택 자 +1 : – Pete

+0

주 :'input'은': checked' 선택자로 중복됩니다. ': checkbox : checked'만으로 충분합니다. –

1

나는 테이블이 id를 가지고 가정은 "# 테이블-ID"입니다 :

$("#table-id").find(":checked") 

당신에게 모든 체크 체크 박스와 라디오 상자를 얻을 것입니다.

$("#table-id").find("input[type='checkbox']:checked") 

는 당신에게 모든 검사 확인란을 얻을 것입니다.

var ids = ""; 
$("#table-id").find("input[type='checkbox']:checked").each(function(){ 
    ids += $(this).attr("id") + ","; 
}); 

당신에게 표에서 확인 확인란의 ID를 포함하는 쉼표로 분리 된 목록을 제공합니다.

와 UUID를 목록 :

var UUIDs = ""; 
$("#table-id").find("input[type='checkbox']:checked").each(function(){ 
    var href = $(this).closest("tr").find("td > a").first().attr("href"); 
    var UUID = href.split('?')[1]; 
    UUIDS += UUID + ","; 
}); 
+1

UUID 값은 OP가 필요로하는 것입니다. 체크 상자 ID는 아닙니다 ... – Lix

+1

대답을 업데이트했습니다. –

+0

': checkbox' 의사 선택기는'input [type = 'checkbox']'를 사용하는 것보다 간단하므로 선택자로'$ ('# table-id : checkbox : checked)'를 사용하면됩니다. ': checkbox'는 jQuery 버전 1.0 이후로 사용 가능합니다. –

-2

$("input[type=checkbox]").change(function() { 
if($(this).is(":checked")) { 
    alert($(this).attr("id")); 
    } 
}); 
+0

체크 박스 ID가 아닌 UUID가 필요합니다. –

0

새 UUID 목록을 만듭니다.

var listOfUUIDs = []; 

입력 내용을 확인하고 조부모 (tr)로 이동 한 다음 내부를 찾으십시오.

a의 목록을 살펴보고 UUID를 목록에 추가하십시오.

$("tr input[checked=checked]").parent().parent().find("td a").each(function(){ 
    listOfUUIDs.push(
     $(this).prop('href').substr(indexOf("uuid=") + 5) 
    ) 
}); 
+1

다른 독자를위한 답을 간략하게 설명하십시오. –

-1

이렇게하면 필요한 것을 얻을 수 있습니다.

$('tr').each(function(index) { 
    var $this = $(this), 
     input = $this.find('input'), 
     result = ''; 

    if (input.is(':checked')) { 
     var uuid = $this.find('a').attr('href').replace(/^\/Home\/DeviceDetails\?uuid=/g, ""), 
      result = result + index + '. ' + input.attr('id') + ' has the uuid: ' + uuid + '<br />'; 
    } 

    $('#result').html(result); 
}); 
+0

'replace()'명령은 완전한 해결책으로 사용되는 예제 HTML과 관련이 있습니다. – Lix

+0

링크가 매번 동일 할 경우 링크가 동일하지 않으면 빠른 해결책이 될 것입니다. 링크를 http://www.kevinleary.net/jquery-parse-url/과 같이 바꾸지 말고 다른 링크를 사용해야하지만 생각해야합니다. 충분히 – Daniel

0

jQuery를의 ID ('# formId'). 찾기 ('TR [클래스는 다음과 같은

var ids = []; 
$("#table input:checkbox:checked").each(function() { 
    var uuid = getParameter($(this).closest('tr').find('a').eq(0).attr('href')) 
    ids.push(uuid); 
}); 

function getParameter(url) { 
    var regex = new RegExp("[\\?&]uuid=([^&#]*)"), 
     results = regex.exec(url); 
    return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); 
} 

을 시도 할 것 = even] '). 각 (function() {

var rowId = ""; 

this.find('input[type=checkbox]').each(function() { 

    if(this.checked) { 
     rowId = "row" + $(this).val(); 
    } 

}); 
$(this).attr('id', rowId); 

});

관련 문제