1

我正在尝试根据 css 属性进行选择(在我的情况下top)。

HTML:

<i style="top:1px;">1px</i><br/>

JS:

$('i').each(function() {
    var top = $(this).css('top');
    console.log('top = '+top);
    if(top == '1px') j(this).css('border','1px solid green');
});

但这不起作用。顶部的值为“自动”。小提琴:http: //jsfiddle.net/forgetcolor/qUjWq/

我猜这与计算样式(?)有关,但不确定。这是怎么回事,有没有办法根据风格区分标签?(在我的应用程序中,我无法控制编写的 HTML,因此无法更改它)。

4

4 回答 4

2

击败我为什么,但你可以这样做:

var top = $(this).get(0).style.top;
于 2012-07-20T20:57:30.473 回答
2

它不是 jQuery,auto是正确的。该top属性仅在元素不是自动定位时使用,即:绝对,

http://jsfiddle.net/qUjWq/2/

否则,您需要执行@Mike 显示的操作。

于 2012-07-20T21:01:42.290 回答
1

您需要postion为 css 分配属性,使其成为 auto 以外的属性。我在position:relative 这里应用了一个(新的 jsFiddle),它现在可以工作了。

http://jsfiddle.net/qUjWq/1/

于 2012-07-20T21:01:59.123 回答
-1

我认为原始小提琴中只是有一些错字。看一下这个 。 http://jsfiddle.net/eQVar/ 我没有改变任何东西。(只是纠正了错字有aj而不是$)。所以 top 可以在没有位置的情况下使用。:)

于 2012-07-20T21:49:59.783 回答