jQuery로 모든 아이디를 얻는 방법은?
섹터의 ID 목록(배열)을 수집하려고 합니다.
<div id="mydiv">
<span id='span1'>
<span id='span2'>
</div>
$("#mydiv").find("span");
jQuery 객체는 제공하지만 실제 배열은 제공하지 않습니다.
할수있어
var array = jQuery.makeArray($("#mydiv").find("span"));
그런 다음 for loop을 사용하여 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); });
이게 폐업의 묘미입니다.
올바른 방향으로 가고 있는 동안, sheeohwell과 cletus는 속성 필터(ID가 있는 요소로 일치하는 요소를 제한하는 것)와 jQuery의 내장 기능을 활용하여 보다 신뢰할 수 있고 간결한 방법을 제시합니다.
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 개체에서 배열을 반환합니다.또한 get()을 호출하기 전에 .map을 사용하여 무언가에 투영할 수 있습니다.
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는 모두 자바스크립트의 연관 배열입니다.
실제 배열을 [] 및 [.push]와 함께 사용하지 않기로 결정했습니다. 왜냐하면 기술적으로는 한 페이지에 여러 개의 ID를 가질 수 있기 때문입니다.그래서 일부 html에 중복 ID가 있는 경우를 대비한 또 다른 옵션입니다.
$(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>
제이쿼리
var IDs = [];
$("#mydiv").find("span").each(function(){ IDs.push($(this).attr("id")); });
특정 태그의 ID를 가져와 다른 요소로 보낼 수 있습니다.예를 들어 다음과 같습니다.
$("input").map(function() {
$( "textarea" ).append(this.id+"\n");
});
모든 입력 ID를 가져와 텍스트 영역으로 전송합니다.
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
'programing' 카테고리의 다른 글
맥에서 libmysqlclient15-dev? (0) | 2023.09.23 |
---|---|
window.location.Clear 캐시가 있는 reload (0) | 2023.09.23 |
JQuery UI 자동완성 도우미 텍스트를 제거/변경하는 방법은 무엇입니까? (0) | 2023.09.23 |
Application_End global.asax (0) | 2023.09.23 |
Ubuntu 15에서 Mysql max-connections에 대해 max_open_files를 증가시킬 수 없음 (0) | 2023.09.23 |