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');
});
});