Как я могу получить все элементы , где , используя jQuery?

#jquery

#jquery

Вопрос:

Как я могу получить все элементы списка, имеющие <span> элемент с class="required"

 <form id="aform">
  <ul>
    <li id="name" >
      <label class="description" for="name">Name<span class="required">*</span></label>
      <div>
        <input id="brand_name" name="brand_name" class="text textfield50pc" type="text" maxlength="40" value="<?php echo $brand->name; ?>"/> 
      </div> 
    </li>
  </ul>    
</form>
  

Ответ №1:

Попробуйте: $('li').has('span.required')

Комментарии:

1. Ах, я знал, что есть что-то подобное. Спасибо 🙂

Ответ №2:

Вы можете попробовать это:

 var span_required = $('li span.required');
var li_required = [];
$.each(span_required, function(index, item){
      li_required[index] = $(item).parents('li').get(0);
});
  

Скрипка:http://jsfiddle.net/maniator/rX2jA /

Ответ №3:

 var $required_items = $('li:has(span.required)');

var $required_items = $('li').has('span.required');
  

Последний, вероятно, быстрее: тест jsperf.

Ответ №4:

 $('li:has(span.required)')
  

http://api.jquery.com/has-selector/

Ответ №5:

Вы можете использовать фильтр

 $("li").filter(function() {
    return $(this).find("span.required").length > 0
})
  

Или имеет

 $("li").has("span.required")
  

Примеры в jsFiddle

Ответ №6:

Вы можете использовать этот способ.

 $(document).ready(function (){
   alert( $('span.required').parents("li").length);
})();
  

Ответ №7:

Вы могли бы использовать:

 var listElements = $('li').has('span.required');
  

Демонстрация JS Fiddle.

Комментарии:

1. Это вводящее в заблуждение имя переменной. (а) Вы не вызываете это $listElement для обозначения объекта jQuery [хорошо, личный выбор]; (б) Вы называете это «ListElement», но на самом деле это набор, который может содержать один или более элементов.

2. @Tomalak, ну … да, я думаю. Отредактировано, чтобы указать, что их может быть больше одного.