-1

解決しましたが、主要なデバッグの提案を含む回答は作成者によって削除されました。ケースを閉じたと考えてください。

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

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

関連する HTML ソース コードの div は次のとおりです。

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

何らかの奇妙な理由で、request forattr("title")は を返し続けundefinedますがattr("id")attr("class")すべて問題なく期待値を返します。私は何が欠けていますか?

編集:(現在削除された)返信で提案されたトリックでデバッグを試みました:

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

そして見よ、それは示しています:

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

何かが私のタイトルを食べました! それ以外はすべて期待どおりですが、タイトルがありません。残念ながら、その回答を正しいとマークすることはできません。ここから属性が消滅する場所を追跡できると思います.

更新: タイトルを派手なツールチップとして表示するために使用されるサード パーティのライブラリが、処理中にタイトルを削除していたことが判明しました。謎が解けました。

ありがとうございます。

4

1 に答える 1

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>
于 2012-04-26T07:44:02.383 に答える