2011-02-23 81 views
0
$('div#searchResult > div#searchResultItem > div#item').hover(function() 
{ 
     alert($(this).text()); 
}); 

嗨,大家好。我做了一個快速的應用程序,我在jQuery的教程網站上學到了什麼。我想到應用這些功能的其他方法,並提出了這個代碼。 問題是我無法訪問#item div內容。任何幫助將不勝感激。 感謝和更多的力量stackoverflow球員。乾杯!jquery訪問div問題

<div id="searchResult"> 
    <div id="searchResultItem"> 
     <div id="item">Some item</div> 
    </div> 
</div> 
+2

請添加你的html結構。 – WEBProject 2011-02-23 07:55:07

+2

好吧,理論上,如果你真的在尋找#item,你不必使用任何其他選擇器,因爲IDS是唯一的...;)我認爲你要找的是類。 – 2011-02-23 07:55:54

+0

我的猜測與nathan一致,我認爲你可能會將id屬性與類混淆? – Mitch 2011-02-23 08:00:51

回答

2

也許你應該等待DOM結構滿載,之後應用腳本。

$(document).ready(function() { 
    $('div#searchResult > div#searchResultItem > div#item').hover(function() 
    { 
     alert($(this).text()); 
    }); 
}) 

如果你想#item的不僅是文字,也可以更好地使用的.html()方法:

alert($(this).html()); 

BTW,檢查是否#searchResult格懸停觸發。

$(document).ready(function() { 
    $('div#searchResult').hover(function() 
    { 
     alert($(this).find('div#item').text()); 
    }); 
}) 

如果是,那麼我想這是css和標記問題。也許一些div的溢出或高度屬性不足。

+0

謝謝,但它不會仍然有效。我試過這種方法。 T_T – 2011-02-23 08:06:25

+0

Then..maybe your div#item is not properly hovered?如果它沒有完全溢出或者具有0高度或顯示內聯屬性或其他內容,則可能是這樣。嘗試在另一個瀏覽器或顯示您的CSS樣式爲您的標記 – Johnner 2011-02-23 08:18:49

-1

如果你想對所有的人都適用這應該是一個昏迷分隔的

$('#searchResult','#searchResultItem','#item').hover(function() 
{ 
     alert($(this).text()); 
}); 
+1

我不認爲這就是他想要的,而逗號應該放在引號內。 >符號是一個直接的子選擇器。 – 2011-02-23 07:58:11

+0

@Zend_Newbie_Dev,請在問題本身發佈任何問題更新,而不是發表評論。這將允許適當的格式化等。 – 2011-02-23 08:01:35

+1

你的語法對於jquery來說是錯誤的。 – Jason 2011-02-23 08:05:28

2

參見this jsfiddle作爲工作示例。

我基本上覆制粘貼了你發佈的內容,所以你必須留下一些東西。我建議你按照其他海報之一的說法使用$(document).ready()事件來確保dom已加載。

+0

它現在的作品。謝謝。 – 2011-02-23 08:22:40