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