假设以下HTML:
和以下Javascript(使用jquery 1.3.2):
function foo(anchor) { alert($(anchor).attr('href')); }
我的目标是能够隐藏点击的li,但我无法为它们分配唯一ID.因此,我想通过$(anchor).parent().hide()之类的东西来定位(即识别点击的特定锚点).
但是,上面的警告返回"undefined",所以对我来说,我甚至没有正确的jquery对象.
我怎么弄清楚$(锚)是什么对象?特别是,我如何看到它具有什么属性,它有什么类,它是什么HTML元素,等等?
你不能这样做:
$(function() { $("a.foo").click(function() { $(this).parent().hide(); return false; }); });
有:
$(...)
在jQuery中永远不是一个单独的HTML元素; 它总是一个列表.
您可以使用.get()
转换为常规Javascript列表,或者更好地使用.each()
:
$(anchor).each(function() { alert(this) });
这会给你类似的东西[object HTMLAElement]
.你必须使用for/in
完全检查,但.tagName
并.innerHTML
可能是不够好,找出你在哪里.
我也想$(...).css('outline', '1px solid lime')
用来寻找元素.这让他们很难错过,并且很容易与Firebug精确定位.
附录:我绝对同意上面关于将您的Javascript与HTML分离的答案.不要内联JS.