3

私はjQueryを使用してCSS変換プロパティを取得しています:

this.$slider.css('transform')

次の結果が返されます。

translate(100px, 0px)

javascriptまたはjQueryを使用して、変数として100という数字だけを取得するにはどうすればよいですか?

4

6 に答える 6

5

javascript文字列関数を使用する場合:

str = this.$slider.css('transform');
a = str.substring(str.indexOf('(')+1,str.indexOf('px'));
alert(a); //100
于 2012-10-02T19:33:21.560 に答える
3

正規表現を使用できます:

'translate(100px, 0px)'.match(/[^\(]+\(([0-9]+)/)[1]

于 2012-10-02T19:32:16.943 に答える
1
var transform = this.$slider.css('transform'),
    first = transform.split('(')[1].split('px')[0];
于 2012-10-02T19:32:29.270 に答える
1

小さな正規表現は最初の数字を取得するだけで十分ですが、これは CSS で返される可能性のあるピクセル単位またはその他のものであることに注意してください。

this.$slider.css('transform').match(/\d+/)
于 2012-10-02T19:36:24.070 に答える
0
s = "translate(100px,0px)"
parseInt(s.substring(s.indexOf("(")+1), 10) // returns 100
于 2012-10-02T19:35:27.953 に答える
0

インデックス 10 から始まるスライスを取得し、parseInt.

var str = this.$slider.css('transform');

var n = parseInt( str.slice(10), 10 );

または、変換以外のタイプの結果がある場合は、次のようにすることができます。

var n = parseInt( str.split("(")[1], 10);
于 2012-10-02T19:36:41.370 に答える