2011-06-06 53 views
1

我试图从维基百科页面获取链接标题的列表。我下载了HTML,现在我试图运行一些JavaScript/jQuery代码来实现这一目标。这里是我迄今为止...jquery按类型和类获取html元素

var elements = $("ul > li"); 
alert(elements.length); 
alert(elements.get(0).val()); 

第一个提醒给我“505”,它看起来大约右(有相当多的这些元素)。

我的问题是如何通过类名过滤元素$("ul > li")?说我想要的特定元素有“class1”类。

第二次提醒不会给我任何东西,虽然elements.get(0)告诉我object HTMLLIelement这是我猜的好。所以我无法访问我想要的特定属性(比如'title')。

感谢您的帮助球员。

+2

[这里](http://api.jquery.com/)你可以找到了最新的jQuery的文档。 – Pointy 2011-06-06 17:27:14

回答

4

我的问题是如何通过类名过滤元素$(“ul> li”)?说我想要的特定元素有“class1”类。

全是CSS selector syntax

$("ul > li.class1") 

第二警报并没有给我什么,但elements.get(0)告诉我: “对象HTMLLIelement” 这是很好的,我猜。

这是因为.get()返回一个普通的DOM元素,而不是jQuery化的元素。使用.eq()代替:

elements.eq(0).val(); 
// to get the title: 
elements.eq(0).prop('title'); 
// or if you're using jQuery <1.6, 
elements.eq(0).attr('title'); 

如果(UL> LI)元素有3个,我想 “一”(链接)的元素,我如何获得的第一个?

使用:first.first()

+0

哦,好的谢谢。还有一个问题:如果(ul> li)元素有我想要的3个“a”(链接)元素,我如何得到第一个元素? – JDS 2011-06-06 17:32:50

+1

您是否阅读过API文档_at all?_ ...请参阅编辑 – 2011-06-06 17:35:50

1

$(“ul> li.className”)应该是你所需要的。

1

如何通过类名过滤元素$(“ul> li”)?

$("ul > li.class1") 

要获取title属性:

elements.eq(0).attr('title'); 
+0

'elements.get(0).attr('title');'Nope。看到我的答案。 – 2011-06-06 17:30:14

+0

是啊,我意识到我发布后,我复制了OP的代码,而不是输入它。 – Mutt 2011-06-06 17:40:33