我有一个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);
我为sum设置变量的方式有问题吗?
答案 0 :(得分: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);
答案 1 :(得分:1)
好的,我看过小提琴,原因是:
var sum= $('#answerlist li[data-answer="'+answer+'"]').data('sum');
...第120行没有找到你想要的li元素是写入JQuery选择器的answer
变量没有值。这意味着你真的这样做了:
var sum= $('#answerlist li[data-answer=""]').data('sum');
...正在寻找数据应答属性没有值的li元素,该元素不存在。
该行上answer
的值应该来自哪里?在第100行的早期answer
循环中使用了一个本地for / while
变量 - 是吗?