2011-08-25 107 views
0

我有以下的HTML代碼,如何計算在JavaScript中具有相同值的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> 

我真正想要的是計數的「合併單元格」,並從這些表把這些內容用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); 
+0

一個問題:爲什麼?我問這個是因爲我覺得有更好的方式去做你想做的事情。 – Mrchief

回答

1

我想使用jQuery是最好的,但這樣的事情應該工作:

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

請注意,這是未經測試。

+0

感謝範,它的工作原理。 –

1

那麼你或許應該遍歷通過執行類似document.getElementsByTagName(「TD」),然後使用每個這些對象的getAttribute方法,看看它是否返回您合併單元格的值標籤..

僞代碼:

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

希望幫助..

+0

工作。謝謝 –

-1

我自己,我只是使用jQuery。

你可以低價出售和對待它像字符串和使用.split('colspan="2"')然後長度爲1將是你的答案。

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/

+0

它顯示了屬性值的全部增值,所以結果是6而不是3,它不計算colspan。你可以請看看。謝謝 –

相關問題