Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 链接列表项_Javascript_Jquery_Html_List_Variables - Fatal编程技术网

Javascript 链接列表项

Javascript 链接列表项,javascript,jquery,html,list,variables,Javascript,Jquery,Html,List,Variables,我有一个HTML列表,其中包含属性数据应答和数据总和。网格中填充了隐藏的答案。当隐藏答案高亮显示时,用户使用总和计算出答案是什么。在突出显示答案时,总和不是HTML中链接的正确答案,因此用户无法计算出来 我的代码有什么问题,为什么不把这两个属性配对呢。是因为我没有为答案设置变量吗 我有这个名单 <ul style="display:none;" id="answerlist"> <li data-answer="1" data-sum="4 - 3 ="><

我有一个HTML列表,其中包含属性数据应答和数据总和。网格中填充了隐藏的答案。当隐藏答案高亮显示时,用户使用总和计算出答案是什么。在突出显示答案时,总和不是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>
我设置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);

好的,我已经看过小提琴了,原因是:

var sum= $('#answerlist li[data-answer="'+answer+'"]').data('sum');
…第120行没有找到您想要的li元素,因为写入JQuery选择器的
answer
变量没有值。这意味着您确实在这样做:

var sum= $('#answerlist li[data-answer=""]').data('sum');
…正在查找数据应答属性没有值且不存在的li元素


该行的
answer
值应该来自哪里?在前面的
for/while
循环第100行时,使用了一个局部
答案
变量-是吗?

我不明白;您是使用
.data
设置DOM元素数据,还是尝试检索
.attr('data-sum')
值?Chrome下还有一个JS错误;您是否检查了控制台?正在尝试检索值。但是试图检索与列表中其他数据链接的正确数据@Dave Newton完全不能回答我的问题。如果您试图从
.data(“sum”)
检索数据,您在哪里设置它?我看不出来。另外,由于
sum.hide()?我需要设置它吗@大卫·纽顿如果你想找回它,你显然需要设置它,但我不知道它应该是什么。再次说明:您的意思是要检索
数据总和属性的值吗?如:var answer=eval(sum)@Thariamaif'sum==“4+5”'是的,但是您的属性由'4+5='组成-要使它工作,您需要去掉'='在我的代码中我将它放在哪里?同样,去掉“=”也不是问题,但有办法解决吗@你小提琴里的塞里亚马瑟密码太多了。你能解释一下为什么你用属性数据求和的方式吗?我试着用的时候它不起作用,但我可能把它放错地方了@David NewtonOk,我明白了。这是第100行的正确答案,因为它用答案填充了网格。那我该怎么办@Steve Wilkes
answer
也用于
minibutton
的点击处理程序,尽管就我所见,它也没有被赋予值。该处理程序中的值应该是什么/它应该来自哪里?对不起,迷你按钮一应该是唯一的一个,因为当按钮被点击时,总和和答案应该会改变-就像下一个问题按钮一样。上面的那一个无关紧要@Steve WilkesSo我是否通过创建新变量来给出答案值@Steve WilkesBare和我一起,我将把代码旋转起来,试着弄清楚到底发生了什么:)
var sum= $('#answerlist li[data-answer=""]').data('sum');