Undefined不是一个函数(jQuery add / remove class)
我正在制作一个似乎不起作用的简单交换按钮。
HTML
JAVASCRIPT
function paid(currentId) { if (document.getElementById(currentId).hasClass("no")) { document.getElementById(currentId).removeClass( 'no' ); document.getElementById(currentId).addClass( 'yes' ); } else if (document.getElementById(currentId).hasClass("yes")) { document.getElementById(currentId).removeClass( 'yes' ); document.getElementById(currentId).addClass( 'no' ); } }
我错过了一些明显的东西吗? 🙂
您没有使用jQuery来选择这些元素,因此它们没有hasClass
, hasClass
和addClass
方法。 它们只是DOM元素。 改为使用它:
function paid(currentId) { // Select the element using jQuery var $elem = $("#"+currentId); if ($elem.hasClass("no")) { $elem.removeClass( 'no' ); $elem.addClass( 'yes' ); } else if ($elem.hasClass("yes")) { $elem.removeClass( 'yes' ); $elem.addClass( 'no' ); } }
此外,您不应使用onclick
属性。 您应该使用jQuery语法:
$("a").on("click", function() { if ($(this).hasClass("no")) { $(this).removeClass( 'no' ); $(this).addClass( 'yes' ); } else if ($(this).hasClass("yes")) { $(this).removeClass( 'yes' ); $(this).addClass( 'no' ); } });
最后,(试图在这里做得很好!)你应该阅读一个很好的jQuery教程,因为你似乎还没有完全掌握使用该库所需的技术。
您可以像这样使用jQuery,而不是创建函数paid()
:
jQuery(document).ready(function(){ jQuery('a').click(function(){ jQuery(this).toggleClass('yes'); jQuery(this).toggleClass('no'); }) })
这会将click事件绑定到Anchor标记并切换类。