2016-04-04 62 views
0

我想達到以下要求與標題屬性只有錨元素,告訴我什麼他們的父元素是:如何僅爲具有標題屬性的元素獲取父元素類型?

var mtype = $(".my-selectors").find("a").prop("title").parent().prop('nodeName'); 
console.log(mtype); 

index.htm:563 Uncaught TypeError: $(...).find(...).prop(...).parent is not a function

我做錯了嗎?

+2

'道具( 「標題」)'返回屬性,一個字符串值的內容。這時你不再處理jQuery對象,因此你嘗試調用'parent'方法失敗 - String對象沒有這樣的方法。 – CBroe

+0

非常感謝您的澄清!那麼當開發人員只想用標題過濾錨鏈接時,開發人員會做什麼,並仍然保持jQuery的活躍狀態? – blackhawk

+1

在SpYk3HH建議的簡單CSS選擇器解決方案不可用的情況下,最基本的方法是在所有鏈接'$(「。my-selectors a」)。each(...)'上進行循環,在那裏檢查有問題的屬性/屬性,並從那裏繼續與元素的父母進行任何操作...編輯:SpYk3HH在此期間編輯了他們的答案。 – CBroe

回答

2

您只需要一個簡單的has attribute selector

var mtype = $('.my-selectors a[title]').parent().prop('nodeName') 

儘管如此,請記住,它只會爲其找到的第一個父節點的父節點獲取nodeName屬性。

更具體的,並且可能更好的舉動可能是:

$('.my-selectors a[title]').each(function(i) { 
    if ($(this).parent().length) { // should always have be true, but ... 
     var mtype = $(this).parent().prop('nodeName'); 
    // could also be defined with "= this.parentNode.nodeName;" 
     console.log(mtype); 
     /* doWork */ 
    } 
}); 
+1

謝謝,看起來我今天學到了一些新東西。 – blackhawk

1

$('a[title]').each(function() { console.log(this.parentNode.nodeName) })