0

この投稿は、JS のスパン値に関して行った以前の投稿の続きです。以下の行では、Chrome で Javascript コンソールを開くと、タグの終了付近に値が表示されます。それらがそれぞれ20と10であるとしましょう。ただし、これらの値は実際の html コードにはありません (以下に示すように)。私のjavascript関数では、スパン値を「抽出」して分割し、値を返そうとしているだけです。結果として「NaN」を取得し続けます。関数が数値を返すために何かを型キャストする必要がありますか?

注: 値はヒストリアン「PI」から読み込まれます

<span id ="LineSpeedGE" class='PIData' data-tag='G2LineSpeedGE'></span> (value of 20)

<span id ="AimPsSpd"    class='PIData' data-tag='G2rCurrentAimPsSpd'></span> (value of 10)

JS 関数:

 function divide(n1,n2)
 { ans = n1/n2;
     document.write(" "+ans+"<BR>");    
     return ans;
 }

 var a = parseInt($("LineSpeedGE.PIData[data-tag]").data("tag"), 10);
 var b = parseInt($("AimPsSpd.PIData[data-tag]").data("tag"), 10);

divide (a, b);

結果として、予想される「2」ではなく NaN が返されます。通常の整数を変数に代入すると、実際の除算は問題ありません。HTMLコードに表示されないスパンの実際の値を「キャプチャ」するのに問題があるようです。データ型が衝突していると思われますか?

私の元の投稿へのリンクは次のとおりです

4

3 に答える 3

2

G2LineSpeedGEは数字ではなく、数字でもありませんG2rCurrentAimPsSpd

<span id ="LineSpeedGE" class='PIData' data-tag='42'></span>動作します。

于 2012-07-30T18:10:19.433 に答える
1

まず、セレクターが間違っています。

$("LineSpeedGE.PIData[data-tag]")

LineSpeedGEこれは( )という名前の要素を探します<LineSpeedGE/>。あなたはおそらく欲しい:

$("#LineSpeedGE.PIData[data-tag]")

#ID を検索します (ID で検索する場合、.PIData[data-tag]は必要ありません)。

また、data-tag値は数値ではありません。それらはG2LineSpeedGEでありG2rCurrentAimPsSpd、それらは数字ではありません。

于 2012-07-30T18:12:10.840 に答える
1

セレクターが間違っているため、要素が返されません。

$("LineSpeedGE.PIData[data-tag]")

#ないため、id ではなく、LineSpeedGE という名前の要素を探しています。

$("#LineSpeedGE.PIData[data-tag]")

にも同じことが当てはまりAimPsSpdます。行方不明#

またG2LineSpeedGE、数値ではなく文字列であるため、parseInt を実行すると NAN になります。

于 2012-07-30T18:12:35.637 に答える