3

我有一个 HTML 列表,其中包含属性 data-answer 和 data-sum。网格中填充了隐藏的答案。当隐藏的答案被突出显示时,用户使用总和来计算答案是什么。在突出显示答案的那一刻,总和不是 HTML 中链接的正确答案,因此用户无法计算出来。

我的代码有什么问题,为什么不将这两个属性配对。是因为我没有为答案设置变量吗?

我有这个清单...

<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

好的,我看过 Fiddle,原因如下:

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应该来自哪里?answer在第 100 行附近的早期循环中使用了一个局部变量for / while- 是吗?

于 2012-10-17T14:24:22.690 回答
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 回答