2012-04-25 7 views
-1

解決済みしかし、キーデバッグの提案を含む回答は著者によって削除されました。ケースが閉鎖されていると考えるJQuery .attr( "title")undefined

これは本当に簡単ですが、何らかの理由で私はそれを理解できません。私はdiv要素のtitle属性の値を取得する必要があり、そして私が持っているjQueryのコードは次のとおりです。

var name = $('#stg'+this.id).attr('title'); 

と関連するHTMLソースコード内のdiv要素がある:いくつかの奇妙な理由で

<div class="stage" id="stg32432432" title="Name - desc">...</div> 

、 とattr("class")はすべて問題のない期待値を返しますが、attr("title")の要求はundefinedを返し続けます。私は何が欠けていますか?

編集:私は(今削除された)回答で提案されているトリックでそれをデバッグしようとした:

var name = $('#stg'+this.id)[0].outerHTML; 

と驚くなかれ、それは示しています

<div class="stage" id="stg32432432">...</div> 

何かが私のタイトルを食べました!他のすべては私が期待した通りですが、タイトルがありません。あまりにも悪いことに、私はここから正しいと答えた印をつけることができません。ここで私は属性が消滅する場所を辿ることができます。

更新:ファンシーなツールチップとしてタイトルを表示するために使用される第三者のライブラリが、タイトルを処理していたことが判明しました。謎解き。

ありがとうございます。

+0

私はattr()が推奨されていないと思われますが、代わりにprop()を使用してみてください。 – tedski

+1

あなたには 'this.id'がありません。あなたは何のエラーがありますか? –

+0

1)divのタイトルを使用して奇妙な種類の2)this.idを返すものは何ですか? –

答えて

0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <title></title> 
    <script src="Scripts/jquery-1.7.1.min.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $('[class=stage][id^=stg]').live('mouseover', function() { 
       var name = $(this).attr('title'); 
       $('#result').html('<h1>This ddiv title is: ' + name + '</h1>'); 
      }); 
     }); 
    </script> 
</head> 
<body> 
    <span id="result"></span> 
    <div class="stage" id="stg32432432" title="Name - desc1"> 
     1... 
    </div> 
    <br /> 
    <div class="stage" id="stg32432433" title="Name - desc2"> 
     2... 
    </div> 
    <br /> 
    <div class="stage" id="stg32432434" title="Name - desc3"> 
     3... 
    </div> 
    <br /> 
    <div class="stage" id="stg32432435" title="Name - desc4"> 
     4... 
    </div> 
</body> 
</html> 
+0

ライブデモの場合:http://jsfiddle.net/nanoquantumtech/qWRTY/ – Thulasiram

+0

最初に、$( '[class = stage] [id^= stg]'のようなセレクタを選択する必要があります。クリック、マウスオーバーなど。その中で、あなたはvar name = $(this).attr( 'title');を呼び出すことができます。値を返します。 – Thulasiram

+0

ご協力いただきありがとうございます。私は問題が何であるかを把握しました。残念なことに、それを解決するのに役立つ答えを投稿したユーザーがそれ以来それを削除していたので、正しいものとしてマークすることはできません。ケースが閉鎖されていると考える – SaltyNuts