jQuery로 모든 ID를 얻는 방법은 무엇입니까?
섹터에서 ID 목록 (배열)을 수집하려고합니다.
<div id="mydiv">
<span id='span1'>
<span id='span2'>
</div>
$("#mydiv").find("span");
나에게 jQuery 객체를 제공하지만 실제 배열은 제공하지 않습니다.
내가 할 수있는
var array = jQuery.makeArray($("#mydiv").find("span"));
그런 다음 for 루프를 사용하여 id 속성을 다른 배열에 넣습니다.
또는 할 수 있습니다
$("#mydiv").find("span").each(function(){}); //but i cannot really get the id and assign it to an array that is not with in the scope?(or can I)
어쨌든, 나는 jQuery에 그것을 할 수있는 속기가 있는지보고 싶다.
//하지만 실제로 ID를 가져와 범위에없는 배열에 할당 할 수 없습니까? (또는 할 수 있습니까?)
그래 넌 할수있어!
var IDs = [];
$("#mydiv").find("span").each(function(){ IDs.push(this.id); });
이것이 클로저 의 아름다움입니다 .
올바른 길을 가고 있는 동안 sighohwell 과 cletus 는 속성 필터 (일치하는 요소를 ID가있는 요소로 제한)와 jQuery의 내장 map()
기능 을 활용하여보다 안정적이고 간결한 방법을 제시 합니다.
var IDs = $("#mydiv span[id]") // find spans with ID attribute
.map(function() { return this.id; }) // convert to set of IDs
.get(); // convert to instance of Array (optional)
.get () 메서드는 jQuery 객체에서 배열을 반환합니다. 또한 .map을 사용하여 get ()을 호출하기 전에 무언가에 투영 할 수 있습니다.
var idarray = $("#myDiv")
.find("span") //Find the spans
.map(function() { return this.id; }) //Project Ids
.get(); //ToArray
나의 제안?
var arr = $.map($("#mydiv [id]"), function(n, i) {
return n.id;
});
다음과 같이 할 수도 있습니다.
var arr = $.map($("#mydiv span"), function(n, i) {
또는
var arr = $.map($("#mydiv span[id]"), function(n, i) {
또는 그냥 :
var arr = $("#mydiv [id]").map(function() {
return this.id;
});
기본적으로 많은 방법.
이 질문에 대답 할 수있는 가장 좋은 방법은 사용자 지정 jquery 플러그인을 만드는 것입니다.
jQuery.fn.getIdArray = function() {
var ret = [];
$('[id]', this).each(function() {
ret.push(this.id);
});
return ret;
};
그런 다음 다음과 같이하십시오.
var array = $("#mydiv").getIdArray();
늦은 답변이지만 이제 쉬운 방법이 있습니다. 현재 버전의 jquery를 사용하면 속성이 있는지 검색 할 수 있습니다. 예를 들면
$('[id]')
ID가 있으면 모든 요소를 제공합니다. ID로 시작하는 모든 스팬을 원하는 경우 span
사용할 수 있습니다.
$('span[id^="span"]')
아니 실제 배열,하지만 OBJS 자바 스크립트의 모든 연관 배열입니다.
I chose not to use a real array with [] and [].push because technically, you can have multiple ID's on a page even though that is incorrect to do so. So just another option in case some html has duplicated ID's
$(function() {
var oArr = {};
$("*[id]").each(function() {
var id = $(this).attr('id');
if (!oArr[id]) oArr[id] = true;
});
for (var prop in oArr)
alert(prop);
});
HTML
<div id="mydiv">
<span id='span1'>
<span id='span2'>
</div>
JQuery
var IDs = [];
$("#mydiv").find("span").each(function(){ IDs.push($(this).attr("id")); });
You can get the ids of specifict tags and send it to a annother element. For exemple:
$("input").map(function() {
$( "textarea" ).append(this.id+"\n");
});
It will get all input ids and send it to textarea.
for(i=1;i<13;i++)
{
alert($("#tdt"+i).val());
}
참고URL : https://stackoverflow.com/questions/827294/how-to-get-all-of-the-ids-with-jquery
'code' 카테고리의 다른 글
pip를 사용하여 pylibmc를 설치할 때 오류 발생 (0) | 2020.11.29 |
---|---|
Visual Studio 패키지 관리자 콘솔의 바로 가기 키? (0) | 2020.11.29 |
표를 사용하지 않는 간단한 2 열 HTML 레이아웃 (0) | 2020.11.29 |
JQuery로 부트 스트랩 탭 활성화 (0) | 2020.11.29 |
IntellJ IDEA에서 디버거 포트를 열 수 없습니다. (0) | 2020.11.29 |