2012-03-20 97 views
3

这应该是很简单的一个特定元素的ID,但我阻止这个....如何获得匹配jQuery选择

比方说,为便于讨论,我们希望prepend()它的ID到与class“class_name”匹配的每个元素。我认为正确的做法是这样的:

$('。class_name')。prepend($(this).attr('id'));

但它不起作用。它看起来像$(this)只在事件callabacks中可用。但是,我如何获得每个特定元素的ID(或任何其他属性)?

非常感谢!

+0

我不明白你想在这里做什么。 Prepend是创建新的DOM元素,而不是属性。你想为匹配的对象设置一个新的“id”属性吗?你想添加一个等于元素ID的类吗? – haltabush 2012-03-20 22:51:02

+0

这是一个人为的例子。假设我想预先读取“我的ID是”。我的问题是,当我使用匹配多个元素的选择器时,我想要获取每个匹配元素的ID。这更清楚吗? – MarkT 2012-03-20 22:54:42

回答

5

你可以使用.each()

$('.class_name').each(function(index, element){ 
    $(element).prepend($(element).attr('id')); 
}); 

例子: http://jsfiddle.net/d8Uj8/

+0

啊哈!这看起来像我想要的。非常感谢! – MarkT 2012-03-20 22:55:27

+0

很高兴为您效劳!如果你愿意,你可以接受和/或upvote答案。看看常见问题解答:http://stackoverflow.com/faq#howtoask – Alex 2012-03-20 23:02:34

+0

接受。不能投票'原因显然我没有足够的信誉:) – MarkT 2012-03-20 23:15:34

0

使用each()

$('.class_name').each(function(){ 
    var id = this.id; 
    $(this).prepend('<span>' + id + '</span>'); 
}); 

而且,最好是把它包在一个标签而不是展开的文本节点在四周浮动。