4

我正在尝试编写将通过跨度、获取其值并将其存储在可用于执行算术的变量中的 javascript。

<span id ="Weekly" class="ServerData" data-tag="WeeklyCarSales">**30**</span>
<span id ="Monthly" class="ServerData" data-tag="DailyCarSales">**6**</span>

关于以上两行,我的功能如下。在当前的设置中,我没有得到任何结果。

function divide(n1, n2) {
    ans = n1 / n2;
    document.write(" " + ans + "<BR>");
    return ans;
}
var a = $('#WeeklyCarSales').ServerData;
var b = $('#DailyCarSales').ServerData;
divide(a, b);

我应该得到“5”的答案但一无所获。如果我将整数/浮点值强制放入变量中,我知道实际的算术是有效的。我似乎一直无法锁定“30”和“6”,它们是跨度值。关于如何获取这两个跨度值的任何想法?

4

3 回答 3

7

这应该可以解决问题...

function divide(n1, n2) {
    var ans = n1 / n2;
    document.write(" " + ans + "<BR>");
    return ans;
}

var a = parseInt($("#Weekly.ServerData").text().replace(/\*/gmi, ""), 10)
  , b = parseInt($("#Monthly.ServerData").text().replace(/\*/gmi, ""), 10);

divide(a, b);

​​这里是工作JSFiddle

于 2012-07-27T15:15:23.770 回答
2

尝试

function divide(n1, n2) {
    ans = n1 / n2;
    document.write(" " + ans + "<BR>");
    return ans;
} 
var a  = $('#Weekly').html().replace('*','');
var b = $('#Monthly').html().replace('*','');
divide(a, b);
于 2012-07-27T15:15:22.087 回答
2

这里有很多问题。首先,在 jQuery 中,('#SOMETHING') 构造通过 ID 引用 DOM 元素。因此,您需要使用 $('#Weekly') 和 $('#Monthly') 来引用 span 元素。

其次,应用于标签的 ServerData 类值不是元素上的可用属性,因此尝试引用 $('#Monthly').ServerData 不会为您做任何事情。

您真正要查找的是您将像这样访问的节点的 HTML 内容

var a = parseInt($('#Weekly').html());

我不确定这些星号是否真的存在。如果它们确实存在,则需要像这样删除它们:

var a = parseInt($('#Weekly').html().replace('*', ''));
于 2012-07-27T15:17:01.247 回答