将两个attr与值进行比较

时间:2013-12-11 17:42:34

标签: jquery attr

我正在努力为此得到数学,可能缺少一些简单的东西。它应该吐出来,但我得到了NaN。这是我的代码。

Jquery的

console.log("-----" +$('.images').attr('dis') - $('.images').attr('loc')
                         );

我意识到我可以将它们放入var中,但这需要在30张图像上运行。

 <img style="left: -195px; height: 882px;" class="images" speed-racer="55" src="-------/assets/img/fwman/FeeneyMan_bike.png" loc="300px" dis="-140">

我必须保持HTML隐蔽,这就是为什么我不想分享它..但感谢-2 = p

/ ---------------------------------------------- ---- / 谢谢大家的意见,最终的代码工作正常。

  $('.images').each(function () {
      speed_racer = $(this).attr('speed-racer');
      $(this).css({
          left: "+=" + (parseFloat($('.images').attr('dis')) - parseFloat($('.images').attr('loc')) / parseFloat($('.images').attr('dis'))
      )
  });

5 个答案:

答案 0 :(得分:3)

试试这样。请注意额外的( )

console.log("-----" + ($('.images').attr('dis') - $('.images').attr('loc')));

我认为原因是因为你正在为一个数字添加一个字符串,然后你将两者都减去它们。

答案 1 :(得分:2)

您是否尝试使用parseInt()parseFloat()将这些字符串值实际转换为整数?

var value = parseInt($('.images').attr('dis')) - parseInt($('.images').attr('loc'));
console.log("-----" + value);

答案 2 :(得分:1)

使用parseFloat&amp;括号仔细。

console.log("-----" + (parseFloat($('.images').attr('dis')) - parseFloat($('.images').attr('loc'))));

编辑:

parseFloat&amp; parseInt(由OP询问)的例子:

parseFloat("1.02") = 1.02 //includes decimal
parseInt("1.02") = 1 //ignores digits after decimal point

答案 3 :(得分:1)

因为您的网站上有大约30张图片$('.images').attr('dis')会有多个结果。所以你必须使用像foreach这样的foreach:

$('.images').each(function(){
  console.log(parseFloat($(this).attr('dis')) - parseFloat($(this).attr('loc')));
})

答案 4 :(得分:0)

那些应该是数据属性吗?

console.log("-----" +$('.images').attr('data-dis') - $('.images').attr('data-loc'));