開いているコードから私はこの行を持っています
var average = parseFloat($(this).attr('id').split('_')[0]),
'_'を区切り文字として持つdividの最初の部分を取得します。問題は、IDを数字で始めることができないことです(命名違反規則)。したがって、phpスクリプトのid値の前に文字を追加します。この文字を削除して期待どおりに「平均」を取得するには、この変数にsubstr(1)を挿入するにはどうすればよいですか?
開いているコードから私はこの行を持っています
var average = parseFloat($(this).attr('id').split('_')[0]),
'_'を区切り文字として持つdividの最初の部分を取得します。問題は、IDを数字で始めることができないことです(命名違反規則)。したがって、phpスクリプトのid値の前に文字を追加します。この文字を削除して期待どおりに「平均」を取得するには、この変数にsubstr(1)を挿入するにはどうすればよいですか?
IDのこの形式について話していると仮定します。
<div id="A1000_bc"></div>
substr(1)
次のように挿入できます。
var average = parseFloat(this.id.split('_')[0].substr(1));
私はこのようにすることを好むかもしれません。そうすれば、正確な形式について少し推測が少なくなり、最初の浮動小数点の数値シーケンスを取得するだけです。
var average = parseFloat(this.id.match(/[\d\.\+\-]+/)[0]);
また、jQueryを削除した方法にも注目してください。 $(this).attr("id")
ここでは、パフォーマンスが大幅に低下this.id
し、利点はありません。jQueryは、プレーンJSよりも実際に優れている場合にのみ使用する必要があります。
これらの方法はどちらも、適切にフォーマットされたIDでのみコードを提示することを前提としています。IDが正しい形式でない場合にデフォルトの条件を処理する場合は、if
有効性を確認し、無効な場合にデフォルトの結果を提供するために、いくつかの条件を含む複数行のコードが必要になります。
どちらのオプションもここで機能します:http://jsfiddle.net/jfriend00/B4Rga/
ちなみに、ここでHTMLを制御する場合は、IDよりもこのようなデータを配置する方が適切です。カスタムデータ属性をお勧めします(HTML5標準ですが、どこでも機能します)。
<div id="whatever" data-avg="3.5"></div>
次に、解析せずに次のようなデータを取得できます。
var average = parseFloat(this.getAttribute("data-avg"));
var average = parseFloat(
$(this) // you've got a jQuery object here - bad place
.attr('id') // you've got a string here - why not
.split('_') // you've got an array here - bad idea
[0] // you've got a string here - why not
// you need to have a number string here
);
Remeber:文字列substr(1)
でのみ呼び出すことができます。