3

data-answer属性とdata-sum属性を保持するHTMLのリストがあります。グリッドには非表示の回答が表示されます。非表示の回答が強調表示されると、ユーザーは合計を使用して回答が何であるかを計算します。回答が強調表示されている時点では、合計はHTMLにリンクされている正しいものではないため、ユーザーはそれを計算できません。

私のコードの何が問題になっていますか、なぜこれら2つの属性を組み合わせないのですか。回答の変数を設定していないからですか?

私はこのリストを持っています...

<ul style="display:none;" id="answerlist">

    <li data-answer="1" data-sum="4 - 3 ="></li>

    <li data-answer="2" data-sum="7 - 5 ="></li>

    <li data-answer="3" data-sum="1 + 2 ="></li>

    <li data-answer="4" data-sum="1 + 3 ="></li>

    <li data-answer="5" data-sum="4 - 3 ="></li>

    <li data-answer="6" data-sum="10 - 4 ="></li>

    <li data-answer="7" data-sum="4 + 3 ="></li>

    <li data-answer="8" data-sum="2 x 4 ="></li>

    <li data-answer="9" data-sum="4 + 5 ="></li>

    <li data-answer="10" data-sum="1 x 10 ="></li>

    <li data-answer="11" data-sum="10 + 1 ="></li>

    <li data-answer="12" data-sum="2 x 6 ="></li>

    <li data-answer="13" data-sum="9 + 4 ="></li>

    <li data-answer="14" data-sum="2 x 7 ="></li>

    <li data-answer="15" data-sum="11 + 4 ="></li>

  </ul>

答えは問題なく機能しますが、質問をdivに取り込むと、「。sumstyle」は常に質問に対して間違ったものになります。

var sum = $('#answerlist li[data-answer=' + answer + ']').data('sum');
$('.sumstyle').text(sum);

合計の変数を設定する方法に何か問題がありますか?

これがフィドルですhttp://jsfiddle.net/ZAfVZ/21/

4

2 に答える 2

1

ここでの問題は、属性data-sumが整数ではなく文字列であるということです。正しい合計を取得するには、属性をフェッチして変数を評価する必要があります。

更新:属性を取得したら、

var attribute_value = "5 + 7 ="; // assumed attribute value
var solution = attribute_value.substring(0, attribute_value.length -2);
var sum = eval ( solution );
alert(sum);
于 2012-10-17T10:50:04.937 に答える
1

わかりました、私はフィドルを見てきました、そしてこれの理由:

var sum= $('#answerlist li[data-answer="'+answer+'"]').data('sum');

...行120で、必要なli要素が見つかりませんanswer。JQueryセレクターに書き込まれている変数に値がないということです。これは、あなたが本当にこれをしていることを意味します:

var sum= $('#answerlist li[data-answer=""]').data('sum');

...これは、data-answer属性に値がなく、存在しないli要素を探しています。

その線の値はどこanswerから来ると思われますか?100行目の前のループで使用されたローカルanswer変数がありfor / whileます-それはそれですか?

于 2012-10-17T14:24:22.690 に答える