2013-05-23 2 views
0

양식에 동적으로 생성 된 텍스트 영역이 있습니다. 내가 가장하고 싶은 것은 가장 가까운 것 (내 기능을 위해 가장 가까운 $(this)을 찾아야한다. 더 낮은 형제 자매는 더 먼 것으로 간주된다.) 공란 하나에 내용을 넣을 것이다.jQuery : 가장 가까운 빈 텍스트 영역

var $poorarea = $('textarea#doc_edits_attributes_0_body'); 

하지만 기능이 작동하는 것은 (아주 의사) 같은 것을 할 필요가 :

var $poorarea = $(this).closest('textarea.editable_areas').empty(); 

상관 도움이 될 것이다이 때문에 특정 하나를 지정하는 순간

큰. jQuery에서 부모/자식 물건은 최고의 시간에 나를 혼란스럽게합니다. 가장 가까운 공란이 인 것도 중요합니다.

단순화 된 HTML은 여기에 있습니다 : 어떤 도움

<div class="controls"> 
    <div id="preview_article" class="thumbnail"> 
    <ul class="thumbnails" id="sort_articles"> 
     <li class="span5"> 
     <input class="article_chooser" id="doc_article_ids_" name="doc[article_ids][]" type="checkbox" value="23" /> 
     </li> 
     <li class="span5"> 
     <input class="article_chooser" id="doc_article_ids_" name="doc[article_ids][]" type="checkbox" value="24" /> 
     </li> 
     <li class="span5"> 
     <input class="article_chooser" id="doc_article_ids_" name="doc[article_ids][]" type="checkbox" value="26" /> 
     </li> 
     <li class="span5"> 
     <input class="article_chooser" id="doc_article_ids_" name="doc[article_ids][]" type="checkbox" value="27" /> 
     </li> 
     <li class="span5"> 
     <input class="article_chooser" id="doc_article_ids_" name="doc[article_ids][]" type="checkbox" value="28" /> 
     </li> 
    </ul> 
    </div> 
</div> 

<div class="control-group"> 
    <div class="controls"> 
    <div class="tab-content"> 
     <textarea class="editable_areas" id="doc_edits_attributes_0_body" name="doc[edits_attributes][0][body]"></textarea> 
     <textarea class="editable_areas" id="doc_edits_attributes_1_body" name="doc[edits_attributes][1][body]"></textarea> 
     <textarea class="editable_areas" id="doc_edits_attributes_2_body" name="doc[edits_attributes][2][body]"></textarea> 
    </div> 
    </div> 
</div> 

감사합니다!

+0

'textarea : empty'가 선택기로 작동해야합니다. – Blender

+0

아니요, 비어 있는지 여부에 관계없이 항상 첫 번째 것을 타겟팅합니다. –

+0

'이'란 무엇입니까? 'closest()'는 가장 가까운 부모를 선택하고, textarea는'this'의 부모가 아닌 것 같은가요? – adeneo

답변

0

jQuery 코드에서 pseudo-selector eq을 사용하십시오. jQuery 코드는 요소 배열에서 제공된 인덱스를 선택하고 for 루프를 통해 실행합니다.

for(i = 0; i < $(".tab-content").children("textarea").length; i++){ 
    if($(".tab-content").children("textarea:eq(" + i + ")").val() == ''){ 
     //do whatever you need to do 
     break; 
    } 
} 
+1

같은 문제는 내용에 관계없이 첫 번째 텍스트 영역을 대상으로합니다. –

+0

코드를 올바른 목적으로 업데이트했습니다. 나는 그것이 처음 * empty *'textarea'를 찾고 있다는 것을 몰랐다. – Niche

관련 문제