2016-01-27 186 views
0

當我將鼠標懸停在另一個元素上時,我試圖提升元素的mouseenter事件。我想基於數據屬性找到元素:根據屬性找不到元素

$("#modal").on("mouseenter", ".jq_pin", function(e) { 
     var attr = $(this).data("abbr"); 
     var els = $(".jq_mapPoint"); 
     var el = els.find("[data-abbr='" + attr + "']"); 
     el.trigger(e.type); 
    }); 

我的事件觸發,和調試我可以看到的元素的列表,jq_mapPoint類,以及一個具有匹配的數據屬性,但EL的長度始終爲0

元素與事件:

<li class="jq_pin"data-abbr="N">HI</li> 

元林試圖目標:

<div style="position:absolute;left:59%;bottom:72%" class="jq_mapPoint" data-abbr="N">N</div> 
+1

哪裏是標記? 'els'將持有很多元素我猜.. – Rayon

+0

我認爲你需要通過el循環遍歷.each,請參閱jQuery,com獲取完整文檔 –

+0

是的,有很多els,不會爲我找到循環? – DavidB

回答

4

你需要.filter(),而不是.find()

減少匹配的元素集合到那些選擇匹配或傳遞給函數的測試的。

var el = els.filter("[data-abbr='" + attr + "']"); 

代替

var el = els.find("[data-abbr='" + attr + "']"); 
+0

但找到應該工作以及 –

+1

@AmrElgarhy,查找在元素的後裔,其中OP需要篩選結果集 – Satpal

+0

是的,你是對的,謝謝你明確 –

-1

它可能需要的所有選擇*

theels.find("*[data-abbr='" + attr + "']"); 
+0

你能爲此做一個工作演示嗎? –

相關問題