2010-11-13 114 views
0

我想在我的頁面上做一些動態調整表格列的大小。在FF和Chrome中一切正常,但(像往常一樣)它似乎在Internet Explorer中突破。經過大量調試後,我發現問題是由於JQuery選擇器在Internet Explorer中無法正常工作,當您處理表格時。看起來,如果您嘗試在多行表中選擇列,JQuery將只選擇第一列。以下是一些可以顯示問題的快速代碼。在Internet Explorer中的JQuery - 選擇表列

<html> 
<head> 
<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
    $("td#2").css('background-color', 'red'); 
}); 
</script> 
</head> 

<body> 
<table> 
<tbody> 
<tr><td id="1">1</td><td id="2">2</td></tr> 
<tr><td id="1">1</td><td id="2">2</td></tr> 
</tbody> 
</table> 
</body> 
</html> 

您會注意到,在IE中,只有第一個「2」被突出顯示。它應該(如果我正確理解我自己的代碼)突出顯示2的兩個。任何想法在這方面的解決方法?

+1

id屬性在html中必須是唯一的 – Hogan 2010-11-13 15:17:40

回答

3

相反的ID(它必須是獨特的,你目前的問題),請使用class$("td.2"),或者兩者都不...,用:nth-child(),像這樣的:

$(document).ready(function(){ 
    $("td:nth-child(2)").css('background-color', 'red'); 
}); 

有了這個你標示會變得簡單得多:

<table> 
    <tbody> 
     <tr><td>1</td><td>2</td></tr> 
     <tr><td>1</td><td>2</td></tr> 
    </tbody> 
</table> 

You can test it out here - 和比較,here's the class version

+0

謝謝Nick!這個特定的問題最終變成了別的東西(我從一個容器div中取得了一些css,讓我感到困擾),但是我用你的提示修復了我的頁面中的很多其他錯誤!愚蠢的我,開發自己的HTML/CSS/JS我從來沒有得知ID需要是唯一的。哎呀! – jwegner 2010-11-15 21:54:53