将span值存储到javascript变量中

时间:2012-07-27 15:10:05

标签: javascript jquery html css

我正在尝试编写将遍历跨度的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',这是跨度值。有关如何获取这两个跨度值的任何想法?

3 个答案:

答案 0 :(得分: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

答案 1 :(得分: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);

答案 2 :(得分:2)

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

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

您真正需要的是您可以像这样访问的节点的HTML内容

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

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

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