对象不支持属性或方法'attr'

时间:2014-02-03 14:14:53

标签: jquery ajax

以下是我的观点摘录

<ul id="ScreenNav">
    <li id="1" class="Active"> One </li>
    <li id="2"> Two </li>
    <li id="3"> Three </li> 
</ul> 

我有一些脚本根据所选的列表元素执行ajax调用。

$('#ScreenNav').on('click', 'li', function () {
    $(this).siblings().removeClass('active');
    $(this).addClass('active');
    var index = $(this).attr('id');

    //ajax call to a controller action
});

不知何故,对控制器操作的ajax调用正在发生,而之前的语句没有任何影响。在调试时我发现语句$('this').attr('id')抛出一个错误,说'对象不支持属性或方法'attr''。

我试图摆弄,但面对同样的问题。 http://jsfiddle.net/29KR9/1/$('this')未被正确识别?在那种情况下,ajax调用如何按预期进行?代码有什么问题?

编辑: 我很抱歉!小提琴按预期工作。正如@Anton指出的那样,我没有包含jQuery。但是我仍然不明白为什么我的添加和删除类不起作用。小提琴和我的代码之间的区别在于,在我的代码中,脚本被绑定到动态html的列表元素。

1 个答案:

答案 0 :(得分:0)

请在$(document).ready()中使用此代码;像这样

$(document).ready(function () {
        $('#ScreenNav').on('click', 'li', function () {           
            $(this).siblings().removeClass('active');
            $(this).addClass('active');

        });
});