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');
});

しかし、これは機能しません。Topの値は「auto」です。フィドル: 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の属性を割り当てる必要があります。position:relative ここ(新しいjsFiddle)を適用しましたが、現在は機能しています。

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

于 2012-07-20T21:01:59.123 に答える
-1

元のフィドルにはタイプミスがあったと思います。これをチェックしてください。 http://jsfiddle.net/eQVar/ 何も変更していません($の代わりにajがあったタイプミスを修正しただけです)。そのため、トップは位置なしで使用できます。:)

于 2012-07-20T21:49:59.783 に答える