当在jQuery中遍历DOM时,我怎么知道我在哪个节点上?

当在jQuery中遍历DOM时,我怎么知道我在哪个节点上?

问题描述:

如果我使用jquery遍历DOM,有没有办法输出我正在使用的标签类型?当在jQuery中遍历DOM时,我怎么知道我在哪个节点上?

标签不具有ID的,所以我不能做:

.attr("id") 

我想到的只是提醒这个值,所以我知道大概我上标签。

+1

我不确定你是如何穿越DOM的。你是否已经选择了一组元素?你是否使用'$('body')。children()'或'$('*')'来抓取所有内容?代码中的这一点是什么导致的? – 2010-08-20 16:27:17

+0

我在一个像$(“#blah”)这样的点,然后我在做下一个,或者之前的等等。 – Blankman 2010-08-20 16:30:15

您使用tagName获得标签:

$('.class').get(0).tagName; 

或者

$('.class')[0].tagName; 

请记住这个来自DOM元素,而不是从jQ​​uery选择。

难道这不是.context以获得传递给jQuery的dom对象吗?

看看... http://api.jquery.com/context/

你也可以高亮显示当前的元素,例如通过添加覆盖其背景颜色或边框的CSS类...

您正在使用Firefox进行开发吗?使用FirebugFireQuery。然后,如果您想检查一个元素,只需在代码中添加console.log($(curiousElement));即可。 Firebug会给你一个很好的总结。但是,使用FireQuery,您可以检查整个jQuery对象。

如果你使用next()和previous()来遍历DOM,你通常应该知道接下来要做什么样的元素。如果你不知道,你也可以提供选择,以这两种方法跳到你知道你什么正在寻找:

$('currentElement').next('div') 

您可以使用该标记名属性从DOM元素像其他的答案,但你也可以做这样的事情,如果你知道你期待什么,并正在核实一切都没有改变:

var $next = $('currentElement').next(); 

if ($next.is('a')) { ... } 

所以,你可以检查您发现该元素是否是你期待在那里的元素, is()也需要选择器,因此您可以测试ID或类。