2012-01-04 18 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の輸入知っています。

私は別のドキュメントで作業しているので、ドキュメント内には別のものがあります。誰もがこの単純な方法がうまくいかない理由を知っていますか?

あなたはjQueryの最近のバージョンを使用している場合はpropを使用する必要がありますhttp://jrstrauss.net/temp/create.html

+0

を役に立てば幸い行う必要がありますか –

答えて

8

あなたのdivは、IDのロゴではなく、IMGを持っています。 試してみてください。

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

+0

うわー、私は気が気になりません。私はその3時間か4時間を過ごしました。 –

+0

答えを自由に受け入れることができます;-) –

+0

ええ、それは私ができる前に一定の時間を待っていました –

2

でソースページを見ることができます。

+0

''''''''''は 'checked'のようなブール値の要素に使われるべきですが、' title'のような通常のプロパティでは廃止されているというJQueryのドキュメントでは何も見つかりません。 –

+0

@ダニエルそれについては確かですか? (しかし、実際には結果には何の違いもありません - http:// jsfiddle。net/YRg2W /) –

3

あなたは今のところ$ .fn.propを使用する必要があります。http://api.jquery.com/prop/

+1

それは本当ですか? (実際には、結果には何の違いもありません - http://jsfiddle.net/YRg2W/) –

2

あなたはまた、あなたのHTMLに応じてこれを試すことができます。

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

Demo

1

あなた持ってlogo

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

今すぐIDを持つ次のマークアップ、次のコードを実行してjQueryの.attrメソッドを実行しようとしています。

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

あなたは.attr方法が与えられた要素の属性値を取得しますが、<div>がタイトルという名前の属性を持っていないことを知っているかもしれませんが。これを確認するには、存在する属性(たとえば、id)を取得してみてください。これを試してください

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

これは属性の値を返します。 jQueryは指定された要素の属性のみを検索し、子要素はスキャンしません。

だから、あなたのケースでそれを動作させる。あなたは、次の

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

は、この関数が呼び出されたとき?それは

関連する問題