我期待選擇最後td
在每一行中,並使用此css選擇器現在.table td:last-child
,但它不工作在IE瀏覽器,所以有什麼辦法,我可以通過JavaScript選擇(沒有任何框架)爲IE瀏覽器?應用CSS樣式。CSS:在JavaScript中的最後一個子選擇器?
回答
var rows = document.getElementById('tester').rows;
for(var i = 0, len = rows.length; i < len; i++) {
rows[ i ].lastChild.style.background = 'orange';
}
編輯:如果你在所有瀏覽器上運行這一點,它可能會更安全做到這一點:
var rows = document.getElementById('tester').rows;
for(var i = 0, len = rows.length; i < len; i++) {
rows[ i ].cells[ rows[ i ].cells.length - 1 ].style.background = 'orange';
}
例如:http://jsfiddle.net/JsyYR/2/
這是因爲如果最後的</td>
和關閉</tr>
之間有任何空格,某些瀏覽器將插入文本節點。因此,lastChild
將無法正常工作。
要做到這一點在JavaScript中,你需要這樣的東西:
var tableRows = document.getElementById('tableid').childNodes
var tableCells = tableRows[tableRows.length - 1].childNodes;
var lastCell = tableCells[tableCells.length - 1];
這是假定該表是與標籤之間沒有任何的格式。沒有人或者這樣的人。
或者,您可以簡單地使用getElementByTagName('td')
並獲取返回數組的最後一個元素。這樣做的缺點是它不適用於具有多個表格的頁面。
如果瀏覽器缺失,通常會插入「」。無論如何,這隻會影響最後一行的最後一個單元格。 – user113716 2010-11-15 15:11:10
這就是爲什麼我說假設沒有tbody。無論如何,它不是一個巨大的邏輯飛躍,以適應不同的HTML結構的代碼。 – 2010-11-15 15:15:30
我的觀點是,你不能假設''因爲瀏覽器可能會爲你插入它。 – user113716 2010-11-15 15:17:30
在Javascript中,您可以在任何DOM對象上引用.lastChild
,但是您必須首先獲取元素,因此如果沒有jQuery或類似的元素,它並不像聽起來那麼容易。
顯而易見的答案是「使用JQuery」。你已經指出了這一點(即「沒有任何框架」),但它是迄今爲止最明顯的解決方案。
另一種解決方案是Dean Edwards' IE7.js(及相關IE8.js和IE9.js),這是一個Javascript包括試圖修補IE瀏覽器的舊版本,並與標準的CSS兼容性更好,等等。我相信它修復:last-child
選擇。但是,它又是一個第三方庫,所以你可能不想使用它。
當然,您可以爲您希望最後一個子樣式應用到的元素添加一個額外的類,然後在CSS而不是最後一個孩子中引用它。由於last-child
專門用於避免您必須這樣做,因此不是理想選擇,但它確實可以確保兼容性。
- 1. 第一個孩子和最後一個孩子的CSS選擇器的問題
- 2. css,選擇第一個孩子和最後一個孩子
- 3. jQuery:最後一個子選擇器
- 4. CSS:沒有(:最後一子):選擇
- 5. CSS:最後一個子選擇器不起作用
- 6. CSS最後一個子選擇器:選擇特定類的最後一個元素,而不是父代中的最後一個子元素?
- 7. 最後一子選擇器 - 在IE
- 8. css兒童選擇器選擇最後一個div
- 9. 使用CSS選擇器選擇最後一個元素
- 10. 在javascript中選擇最後一個孩子
- 11. CSS-:具有「xyz」類名選擇器的最後一個孩子? Plain CSS/LESS
- 12. 結合:最後一個孩子在:CSS中沒有(.class)選擇器
- 13. :最後一個孩子僞類選擇在CSS和Internet Explorer
- 14. CSS最後一子選擇......最後父 - 不是最後的最後
- 15. 選擇的最後一個子
- 16. CSS:第一個孩子的選擇器
- 17. 。第一個孩子的CSS選擇器
- 18. CSS flex:行選擇器中的最後一項和第一項
- 19. CSS最後孩子選擇所有?
- 20. 如何使用CSS選擇器選擇除第一個和最後一個以外的所有子女
- 21. 選擇最後一個直接子
- 22. 選擇最後一個孩子
- 23. 在jQuery中選擇每個可見的最後一個孩子
- 24. 具有多個選擇器的CSS最後一種類型
- 25. css選擇器:第一個孩子
- 26. CSS的孩子vs後代選擇器
- 27. CSS:最後一個孩子
- 28. CSS - 第一個孩子選擇器比類選擇器更強
- 29. CSS最後選擇(沒有最後的孩子)
- 30. :最後孩子沒有選擇的最後一個元素
1)IE sux。 2)使用jquery – Mikhail 2010-11-15 15:04:04
是的 - 你可以重新實現支持這種類型選擇的每個框架是否選擇最後一個孩子的元素。這可能不是一大堆代碼,但是真的,爲什麼?只要選擇一個好的框架,並與它一起去。 – tvanfosson 2010-11-15 15:04:28
'最後一個孩子'和'第一個孩子'都應該適用於IE7及更高版本。 – 2010-11-15 15:05:38