Jquery 对象没有';t支持属性或方法';属性';

Jquery 对象没有';t支持属性或方法';属性';,jquery,ajax,Jquery,Ajax,以下是我观点的摘录 <ul id="ScreenNav"> <li id="1" class="Active"> One </li> <li id="2"> Two </li> <li id="3"> Three </li> </ul> 不知何故,对控制器操作的ajax调用正在发生,而之前的语句没有任何效果。调试时,我发现语句$('this').attr('id')抛出一

以下是我观点的摘录

<ul id="ScreenNav">
    <li id="1" class="Active"> One </li>
    <li id="2"> Two </li>
    <li id="3"> Three </li> 
</ul> 
不知何故,对控制器操作的ajax调用正在发生,而之前的语句没有任何效果。调试时,我发现语句
$('this').attr('id')
抛出一个错误,表示“对象不支持属性或方法'attr'

我试着摆弄,但面临着同样的问题。
$('this')
是否未正确识别?在这种情况下,ajax调用是如何按照预期进行的?代码有什么问题

编辑: 我道歉!小提琴按预期工作。正如@Anton所指出的,我没有包括jQuery。然而,我仍然不明白为什么我的类的添加和删除不起作用。fiddle和my code之间的区别在于,在my code中,脚本绑定到动态html的列表元素。

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

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

        });
});

您需要在fiddle中包含jQuery,它可以是
var index=this.id
看起来很好,可以使用
这个.id
或使用
的.prop
。DOMNode本机的任何内容都应该通过
.prop
而不是
.attr
@Brad访问,因为
id
属性存在于标记本身中,它们既是HTML属性又是DOM属性,在这种情况下使用
attr()
应该可以很好地工作。然后请在页面上添加jquery文件引用。下载jquery文件并在页面上像这样添加referede。
$(document).ready(function () {
        $('#ScreenNav').on('click', 'li', function () {           
            $(this).siblings().removeClass('active');
            $(this).addClass('active');

        });
});