0

我在表单上有动态生成的文本区域数量。我想做的是找到最近的(最近的$(this)应该适用于我的功能,前提是较低的兄弟姐妹被认为更远)空白一个,其中将放置一些内容。

目前它指定了一个特定的,因此:

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>

谢谢你的帮助!

4

1 回答 1

0

在您的 jQuery 代码中使用伪选择器 eq,它从元素数组中选择给定的索引,并通过 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;
    }
}
于 2013-05-23T04:19:33.657 回答