链接列表项

时间:2012-10-17 10:41:42

标签: javascript jquery html list variables

我有一个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设置变量的方式有问题吗?

这是一个小提琴http://jsfiddle.net/ZAfVZ/21/

2 个答案:

答案 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变量 - 是吗?