2012-01-04 39 views
2

我試圖使用jQuery更改HTML屬性,但無論我做什麼,我都無法獲得任何與jQuery的.attr()一起使用的東西。JQuery .attr不會檢索或更改值

爲了測試,我已經寫了

alert($("#logo").attr("title")); 

,即使我有id爲「標誌」和標題的IMG,警報保持空白。

我的完整的方法:

function switchVideo(videoID) { 
    var videoPlayer = document.getElementById("example_video_1"); 
    videoPlayer.src = "video/Occam.webm"; 
    videoPlayer.load(); 
    $("#example_video_1").attr("poster", "video/ss.png"); 

    //Doesn't work: 
    alert($("#logo").attr("title")); 
    $("#logo").fadeOut(); 

    videoPlayer.play(); 
} 

我淡出的作品,所以我知道我正確導入jQuery的。

我已經得到它在另一個文件中工作,所以文件中必須有別的東西搞亂了它。有誰知道爲什麼這個簡單的方法不起作用?

您可以在http://jrstrauss.net/temp/create.html

+0

時調用此函數? – 2012-01-04 14:10:44

回答

8

您的div有標識的標誌,而不是IMG。 嘗試:

$("#logo img").attr("title")

+0

哇,我覺得很愚蠢。我花了3到4個小時。 – 2012-01-04 14:21:49

+0

隨時接受答案;-) – 2012-01-04 14:30:22

+0

是的,它讓我等了一段時間才能夠 – 2012-01-04 15:20:53

2

看到源頁面,如果您使用的是最新的jQuery的版本,您應該使用prop

+0

'prop'應該用於像'checked'這樣的布爾元素,但是我無法在JQuery文檔中找到任何表示它不推薦使用普通屬性(如title)的東西。 – 2012-01-04 14:16:20

+0

@Daniel你確定嗎? (無論如何,它實際上並沒有改變結果 - http:// jsfiddle。淨/ YRg2W /) – 2012-01-04 14:16:28

3

您應該使用$ .fn.prop不動了:http://api.jquery.com/prop/

+1

你確定嗎? (無論如何,它實際上並沒有對結果產生任何影響 - http://jsfiddle.net/YRg2W/) – 2012-01-04 14:16:44

2

你也可以試試這個根據你的HTML:

alert($("#logo a img").attr("title")); 

Demo

1

你有ID下面的標記logo

<div id="logo"> 
...... 
</div> 

現在,您正試圖通過以下代碼運行jQuery的.attr方法。

$("#logo").attr("title"); 

正如你可能知道.attr方法獲取給定元素的屬性值,但<div>沒有屬性命名標題。因此要確認這一點,請嘗試檢索確實存在的屬性,例如id。所以試試這個

alert($("#logo").attr("id")); 

這將返回屬性的值。要注意的重要一點是jQuery僅查找給定元素的屬性,而不會掃描子元素。

所以,使它在你的情況下工作。你需要做以下

alert($("#logo img").attr("title")); 

希望它可以幫助