programing

jQuery로 모든 아이디를 얻는 방법은?

muds 2023. 9. 23. 23:10
반응형

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); });

이게 폐업의 묘미입니다.

올바른 방향으로 가고 있는 동안, sheeohwellcletus속성 필터(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

반응형