2012-11-14 26 views
1

我想收集extracoronal数字 - 正确的方法是做什么的?如何选择所有外部标签号码

<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> 

scirpt:

<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 

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

回答

0

如果你只是想用的“A”级的所有元素的文本,使用:

$('.A').text 
+0

'text'(方法)将返回的文本内容所选元素,但在OP的代码中,数字是兄弟文本节点。 – undefined

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/

0

此版本retrives仅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) ; 

}); 

DEMO:http://jsfiddle.net/Mqat4/

相关问题