如何在jquery中为网页上的每个容器分别获取属性值?

时间:2010-05-04 21:29:27

标签: javascript jquery

此问题继续How to get attributes of container in jQuery,我的网页上有不同的容器,所有容器都有<div id = "some values">。现在,我如何为每个组件分别获取属性值?

有什么方法可以知道哪个属性id属于哪个容器div?

目前我正在使用:

var id = $( '.promotion' ).attr( 'id' );

但是如果我在页面上有多个促销组件并且所有的div属性都与id相同,那么这个特定的属性id属于这个特定的容器我该怎么说呢?

更新:我正在为页面上的每个容器调用一个函数,所以如果我使用上面提到的代码而不是总是返回我的第一个id匹配div并且永远不会去其他div,因此我将始终获得第一个容器的id相同的值?如果是这样的话,那为什么呢?

var id = $( '.promotion' ).this.attr( 'id' );

var id = $( '.promotion' ).$this.attr( 'id' );

var id = this.$( '.promotion' ).attr( 'id' );

我如何知道属性值是否适用于当前容器,那么我该如何正确使用它来获取此信息呢?

希望这个问题很明确。

1 个答案:

答案 0 :(得分:1)

您可以循环遍历并单独处理每个div

$(".promotion").each(function() {
    var id = this.id; // 'this' is the html element, not the jquery object
});

<强>更新

function myfunc() {
   alert(this);
}

// inside myfunc, this will be the window
myfunc(); 
// call (also: apply()) changes "this" to be the first argument
myfunc.call(document.getElementById("someid")); 

Jquery使用this来引用当前正在处理的元素。在将成为目标元素的事件中。在.each中,它是集合中的当前元素。

考虑:

$(".promotion").click(function() { 
   alert(this); // will alert with the div that was clicked
});

在Jquery中,您可以使用$(element)使用JQuery Object包装任何html元素。因此,当this是上述示例中的html元素时,您可以使用$(this)

$(".promotion").click(function() { 
   alert($(this).attr("id")); // will alert with the div that was clicked
});

在此处使用它:http://jsbin.com/okuri3/edit

有关this的更多信息: