2016-08-23 27 views
-1

私はWebページを持っています。このWebページには、動的に生成されるHTMLを含む領域があります。このエリア内の特定の名前のカスタム属性を持つの最初の要素(すべてではない)を取得したいと考えています。私はその属性値を取得したい。 Fiddleをセットアップしました。jQuery - カスタム属性で最初の要素を選択

<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> 

基本的に、私はdata-custom-property属性を持つmyElement内の最初の要素を取得しようとしている:コードは次のようです。私が見たすべてのもの(12)は属性の値を探します。私は名前で検索したい。

どうすればわかりますか?

+0

jQueryの代わりに 'document.querySelector'を使うと、最初の要素を取得するためだけにDOM全体を高価に検索する必要がありません。 'document.querySelector( '[data-custom-property]');'。 –

+0

...もしあなたがそれが 'div'であることを知ったなら、それをセレクタで使うとパフォーマンスが向上します。 'div [data-custom-property]'また、 'body'の中に要素があることを知っているなら' document'の代わりに 'document.body'から検索することができます。 –

答えて

0

それは常にDIVになり、そしてあなたは、要素のIDを知っている場合:それはできるだけ具体的にベストですけれども

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

それ以外の場合は、これは、あまりにも、動作します:

$("[data-custom-property]:first") 
関連する問題