1

我想收集冠状外的数字——正确的方法是什么?

<body>
<div id="HQ"></div>    

<table class="table" border="2">
<tr>
<td>AAAA</td>
<td>
<span class="A"></span>
"6"
<span class="B"></span>
"4"
<span class="C"></span>
"5"
<span class="D"></span>
"5"
</td>
</tr>
</table>

<table class="table" border="2">
<tr>
<td>AAAA</td>
<td>
<span class="A"></span>
"9"
<span class="B"></span>
"4"
<span class="C"></span>
"2"
<span class="D"></span>
"2"
</td>
</tr>
</table>

<table class="table" border="2">
<tr>
<td>AAAA</td>
<td>
<span class="A"></span>
"7"
<span class="B"></span>
"4"
<span class="C"></span>
"5"
<span class="D"></span>
"1"
</td>
</tr>
</table>

</body>

脚本:

<script>

$(function(){

var texts = $('td *').map(function() {
    if (this.nextSibling.nodeType == 3)
        return this.nextSibling.nodeValue;
});

var a = texts[0];
var b = texts[1];
var c = texts[2];
var d = texts[3];

A = Number(a)
B = Number(b)
C = Number(c)
D = Number(d)

$("#HQ").html(A);
});
</script>

我想收集表格内的所有数字。

我只是想要class="A"

<span class="A"></span>
 "6"

6 + 7 + 9 = 22

尝试了上面的代码,但没有成功。

4

3 回答 3

0

此版本仅检索A类后的数字并输出等式

$(function() {
    var nums=[];
    var tot=0;

    $('td:has(.A)').each(function(){
        var $contents=$(this).contents();
        var numTxt=$contents.filter('.A')[0].nextSibling.nodeValue.replace(/"/g,'')
        var num=parseInt(numTxt,10)
       nums.push(numTxt);
        tot+=num
    });
   $('body').append('<br><br>'+ nums.join('+') +'='+tot) ;  

});

演示:http: //jsfiddle.net/Mqat4/

于 2012-11-14T03:48:42.637 回答
0

如果您只想要“A”类的所有元素的文本,请使用:

$('.A').text
于 2012-11-14T02:18:11.053 回答
0

您可以使用该each方法。

$(function() {
    var total = 0;
    $('td').find('span').each(function() {
       var n = this.nextSibling.nodeValue.replace(/"/g, '');
       total += parseInt(n, 10);
    });
    $('#HQ').text(total)
});

http://jsfiddle.net/vDvnx/

于 2012-11-14T02:28:28.073 回答