2010-03-18 3 views
7

극단적 인 n00b ... 여기에는 많은 수의 요소가 포함되어 있습니다 (동적으로 생성되므로 백 엔드에서 동적으로 생성되기 때문에 고유 ID가 필요합니다). 나는이 wth jQuery를하는 법을 잘 이해하지 못하고있다. 어떤 도움을 주셔서 감사합니다. 아래의 코드에서 여기에 jQuery와 함께 고유 한 ID를 무제한으로 생성해야합니다.

, 나는 ID1과 같은 고유 ID를 얻기 위해 각각의 "바"사업부를 원하는 것, ID2 등 등 이들에 대한 이벤트 리스너를 결합하기 위해

<div class="foo"> 
    <ul class="bar"> 
</ul> 
    <ul class="bar"> 
</ul> 
    <ul class="bar"> 
</ul> 
    <ul class="bar"> 
</ul> 
</div> 

답변

10
var id = 1; 
$('.foo .bar').each(
    function() { 
    $(this).attr('id', 'id' + id++); 
}); 

, 당신을 루프에서 수행하거나 live을 사용해야합니다. 이 같은

+4

내가 펀치에 맞았을, id 값 속성에 할당 #를 증가의 논리를 수행! –

+0

항상 나에게도 일어납니다. 나는 더 빨리하려고 노력해야합니다. –

+0

'this' 후에 paranthesis를 놓쳤습니다.'$ (this) .attr ('id', 'id'+ id ++); ' – Bulan

2

뭔가 : 클래스 바 모든 요소를 ​​잡기 위해 jQuery를

  • $(".bar") class selector 사용

    var ctr = 1; 
    $.each($(".bar"), function() { 
        $(this).id = "id"+(ctr++); 
    }); 
    

    ,

  • $.each(selector, func) utility은 바 요소를 반복하고 그들에게 하나 하나를 해결하기 위해,
  • $(this) 반복에서 현재 jQuery 래핑 된 요소를 가져 오려면
  • "ID"+ (CTR는 ++) 단순히 오초 등으로 때마다
0
function makeAllTheThingsThatTheOPRequested(num){ 
    var ms = document.createElement('div'); 
    ms.setattribute("class","your_class_name"); 
    var uls=[]; 
    for(var i=0;i<num;i++){ 
     var tmp = document.createElement('ul'); 
     tmp.setattribute("class","your_class_name"); 
     ms.addChild(tmp) 
     uls.push(tmp); 
    } 
    document.body.addChild(ms); 
} 
+0

음, OP는 이것을 jQuery에서 원합니다. –

+0

죄송합니다. 부끄러워하지 않았습니다. ( –

+0

@Daniel 이것은 "in jQuery"... ;-))) – deceze

관련 문제