如何使用javascript计算HTML中具有相同值的属性?

时间:2011-08-25 21:17:52

标签: javascript html

我有以下HTML代码,

<table>
<tr>
<td>content</td>
<td>content</td>
</tr>
<tr>
<td colspan="2">one</td>
</tr>
<tr>
<td>content</td>
<td>content</td>
</tr>
<tr>
<td colspan="2">two</td>
</tr>
<tr>
<td>content</td>
<td>content</td>
</tr>
<tr>
<td colspan="2">three</td>
</tr>
</table>

我真正想要的是计算“colspan”,并仅使用JavaScript从那些表中获取那些内容,请不要使用jquery和mootool。谢谢。

我已经得到了答案,我们可以优化为更短的代码或仅仅是代码吗?

var tds = document.getElementsByTagName( 'td' );
var colspanCount = 0;
var valuecount = 0;
for( i=0; i<tds.length; i++ ) {
    myvalue = (tds[i].hasAttribute( 'colspan' ));
    if (myvalue == true) {
     valuecount += 1;
    }

}
document.write('my value is ' + valuecount);

4 个答案:

答案 0 :(得分:1)

那么你应该通过执行类似document.getElementsByTagName(“td”)的操作来循环遍历标记,然后对每个对象使用getAttribute方法,看看它是否为colspan返回了值。

伪代码:

tds=document.getElementsByTagName("td")
for i fom 0 to tds.length
if tds[i].getAttribute("colspan") is defined
//do smthing

希望有所帮助..

答案 1 :(得分:1)

我认为使用jQuery会是最好的,但是这样的事情应该有效:

var tablecols = document.getElementsByTagName("td");
for(var i in tablecols) {
    if (tablecols[i].getAttribute('colspan') != undefined) {
        alert(tablecols[i].innerHTML);
    }
}

请注意,这是未经测试的。

答案 2 :(得分:0)

var tds = document.getElementsByTagName( 'td' );

var colspanCount = 0;
for( i=0; i<tds.length; i++ ) {
    colspanCount += tds[i].hasAttribute( 'colspan' ) ? parseInt( tds[i].getAttribute( 'colspan' )) : 0;
}

document.write( 'Count: ' + colspanCount );

经过测试工作:

http://jsfiddle.net/kmfvu/

答案 3 :(得分:-1)

我自己,我只是使用jQuery。

你可以廉价出来并像对待字符串一样对待它并使用.split('colspan="2"')然后长度为1将是你的答案。