2016-08-23 4 views
-1

У меня есть веб-страница. Эта веб-страница имеет область с некоторым динамически созданным HTML. Я хочу получить первый элемент (не все элементы) в этой области, который имеет собственный атрибут определенного имени. Затем я хочу получить это значение атрибута. Я установил Fiddle. Код выглядит так:jQuery - выберите First Element с пользовательским атрибутом

<div id="myElement"> 
    <div> 
    <div> 
     <ul> 
     <li></li> 
     <li><div data-custom-property="12345"> 
      <p> 
      Some details 
      </p> 
      <div> 
      <div> 
       <div data-custom-property="xyzwt"> 
       Stuff 
       </div> 
      </div> 
      </div> 
     </div></li> 
     <li></li> 
     </ul> 
    </div> 
    </div> 
</div> 

<button onclick="return getFirstElementWithProperty('data-custom-property');"> 
    Get Element 
</button> 

В принципе, я пытаюсь получить первый элемент в myElement, который имеет атрибут data-custom-property. Все, что я видел (1, 2), предполагает поиск значения атрибута. Я хочу искать по имени.

Как его найти?

+0

Используйте 'document.querySelector' вместо jQuery, чтобы вам не пришлось выполнять дорогостоящий поиск всего DOM только для получения первого элемента. 'Document.querySelector ('[данные на заказ недвижимость]');'. –

+0

... если вы знаете, что это 'div', то использование этого в селекторе также улучшит производительность. 'div [data-custom-property]' Также вы можете искать из 'document.body' вместо' document', если вы * знаете *, что этот элемент будет находиться в 'body'. –

ответ

0

Если он всегда будет ДИВ, и вы знаете элемента ID:

$("#myElement div[data-custom-property]:first") 

В противном случае, это будет работать, тоже, хотя это лучше, чтобы быть как можно более конкретным:

$("[data-custom-property]:first") 
Смежные вопросы