#li{
width:33.33%;
}
とcssで設定してるときに「33.33%」という文字列を取得するにはどうしたらいいですか?
w = $('#li').css('width');
や
w = $('#li').width();
を試しましたが、実寸の「○○px」になってしまいます。
宜しくおねがいします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/09 15:22

回答4件
0
ベストアンサー
jQuery
1$('#li')[0].computedStyleMap().get('width').value; // 33.33000183105469
cf. htmlの要素のパーセント表記されているwidthやheightの数値を数字で取得したい
https://teratail.com/questions/170279
投稿2019/02/12 01:47
総合スコア13749
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
これでひとつひとつ調べていくしかないんじゃないかと思いますが……(他に方法があったらすみません)
CSSRule.cssText - Web API | MDN
投稿2019/02/09 10:42
総合スコア37409
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/09 11:43
2019/02/09 12:01
2019/02/09 14:27
2019/02/09 14:51
2019/02/09 15:10 編集
2019/02/09 15:16

0
実際の%自体を直接取得はできないので、段階を踏むしかないかと・・・。
現在最終的に適用されているCSSを取得できるAPIが存在しますので、それをうまく使ってみる、とかですね。
下記でいかがでしょう。
html
1<html> 2<head> 3<style> 4#hoge { width: 33.3%;} 5</style> 6</head> 7<body> 8<p id="hoge">width取得したい</p> 9 10<script> 11// 対象とそのスタイルを取得 12const pDom = document.getElementById('hoge'); 13const lastStyle = window.getComputedStyle(pDom); 14// 親のスタイルを取得 15const parentStyle = window.getComputedStyle(pDom.parentNode); 16 17// 対象と親のpx横幅実寸から、%を計算 18const widthStr = (parseFloat(lastStyle.width) / parseFloat(parentStyle.width) * 100) + '%'; 19 20</script> 21</body> 22</html>
getComputedStyleメソッドを使い、対象とその親の最終的に適用されているスタイルを取得し、
そこから割り算して、%を求めています。
ただし、このgetComputedStyleメソッドは、対象ブラウザ、わりとモダンなブラウザだけなので(特にIEのバージョンは注意)注意が必要です。
投稿2019/02/09 15:04
総合スコア9555
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
こちらでいかがでしょう?
JavaScript
1w = $('#li').prop('style').width;
追記:
上記は、コメントで指摘されている通りインラインで書かれているものしか当てはまらず、本質問に対する回答として不適・間違っていました。大変失礼しました。
投稿2019/02/09 10:44
編集2019/02/09 12:35総合スコア805
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/09 11:12
2019/02/09 11:22
2019/02/09 11:27
2019/02/09 11:42

あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。