JQuery .attr(“title”)未定义

时间:2012-04-25 18:23:20

标签: javascript jquery

已解决但作者删除了包含关键调试建议的答案。关闭案例。

这应该很简单,但由于某种原因我无法理解。我需要获取div的title属性的值,我的jQuery代码是:

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

并且相关HTML源代码中的div是:

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

由于某些奇怪的原因,attr("title")的请求会一直返回undefined,即使attr("id")attr("class")都返回了没有问题的预期值。我错过了什么?

编辑:我尝试使用(现已删除)回复中建议的技巧对其进行调试:

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

并且看,它显示:

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

吃了我的头衔!其他一切都与我的预期完全一样,但缺少标题。太糟糕了,我无法将答案标记为正确,因为我从这里开始就可以追踪属性被消灭的位置。

更新:原来,用于将标题显示为花哨工具提示的第三方库在处理标题时剥离了标题。神秘解决了。

感谢所有人。

1 个答案:

答案 0 :(得分: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>