2016-05-09 3 views
-2

У меня есть следующие HTML и я хотел, чтобы получить входы внутри дивыJquery быстрый способ найти ребенка элемента

<div id="div1" > 
    <input class="myinput" value="input inside div1"/> 
</div> 

<div id="div2" > 
    <input class="myinput" value="input inside div2"/> 
</div> 

Чтобы получить входы у меня есть два подхода вопрос в том, какой является предпочтительным один . До сих пор я пробовал следующие два пути. Пожалуйста, предложите, какой из них лучше, и почему. Или, если есть другие лучшие способы получения дочернего элемента элемента по имени класса, я также открыт.

var input1 = $("#div1 .myinput"); OR 
    var input1 = $("#div1").find(".myinput"); 
+2

Разница в производительности настолько минимальна, что это действительно не имеет значения. Используйте то, что вам более удобно. – Daniel

+1

... и не используйте повторяющиеся идентификаторы. – undefined

+0

Я только что редактировал свой вопрос, чтобы использовать класс. –

ответ

2

Я создал jsFiddle, чтобы сравнить эффективность обоих процессов и неизменно показывают, что $("#div1").find(".myinput"); является более эффективным.

Это имеет смысл для меня. IIRC, #div1 .myinput сначала найдет все .myinput элементов в DOM, а затем вернет только тот, у которого есть предок #div1. Принимая во внимание, что #div1 .find(.myinput) найдет только первый #div1 в DOM, затем проанализируйте его дети, эффективно уменьшив количество разбора, требуя более эффективного процесса.

Предыдущий ответ перед вопросом редактирования:

Самый быстрый способ будет просто использовать:

var input1 = $('#input'); 

Поскольку атрибуты ID должны быть уникальными, добавляя что-либо еще не имеет смысла.

+0

Пожалуйста, внимательно прочитайте вопрос, прежде чем спешить в asnwer. У меня есть два входа с одинаковым идентификатором, и ваш подход заставит меня, который когда-либо добавится, наконец. –

+3

@AmeteGirl Два входа с одинаковым идентификатором недействительны HTML. Я предлагаю вам написать код, соответствующий стандартам. – Quantastical

+0

... или используйте класс вместо id – Daniel

Смежные вопросы