2015-06-20 57 views
-1

我穿越複雜的DOM,我有一個重複的HTML結構jQuery的。每個深選擇

我使用的每一個特徵jQuery中

$('.row').each(function (index, object) { 
    $(object).find('label[for="duedate"] > .input-group > input:first').text(); 
} 

我嘗試使用上面的代碼開始遍歷,但我在結果中未定義。

我的HTML的示例如下

<div class="row"> 
    <div class="form-group ml-sm mr-sm"> 
     <label class="control-label" for="duedate">Due Date</label> 
     <div class="input-group"> 
      <span class="input-group-addon"> 
       <i class="fa fa-calendar"></i> 
      </span> 
      <input "type="text" data-plugin-datepicker class="form-control" readonly="readonly" required> 
      </div> 
     </div> 
    </div> 
</div> 

我想通過HTML的每一行尋找特定的類和元素遍歷,直到我打了輸入元素,然後檢索文本。

任何人都可以建議正確的方法來實現這一目標嗎?

感謝

+2

如果你在輸入上加一個id,你可以做$('#id')。遍歷DOM非常低效。 – Brian

+0

'input'元素沒有任何文本。你的意思是'.val()'? – Barmar

+2

HTML中沒有'object-container','form-group'不是'label'的子元素。 – Barmar

回答

0

我想這是你想要什麼:

$('.object-container label[for="duedate"]').parent(".form-group").find("input:text").each(function() { 
    var text = $(this).val(); 
    // do something with text 
}); 

.form-grouplabel父,但你選擇了它作爲孩子。並且input:text不是label的孩子,它是.form-group的後裔。

而要在文本字段中獲取輸入,請使用.val().text()用於HTML節點的文本內容。