1

請注意,下面是一個只有IE瀏覽器問題(像往常一樣...)CSS選擇器作品,jQuery選擇不(IE唯一的問題)

我有以下的HTML代碼:

<input id="foo" type="checkbox" checked="checked" /> 
<label for="foo"> 
    <span>some foo text</span> 
</label> 

我有一個可以正常使用CSS規則:

#foo + label > span{ 
    display: block; 
    line-height: 1em; 
    padding: 0.4em 1em; 
    cursor: pointer; 
    text-align:center; 
    text-decoration:none; 
} 

我再有未返回任何相同的CSS選擇器匹配該CSS選擇器:

var textVal = $("#foo + label > span").text(); 

但由於某些原因,如果我使用下面的行,它會返回正確的值:

var textVal = $("#foo + label").html() or .text() 

我真的要選擇標籤的跨度,是因爲我想改變它的文本並且不希望每次都追加新的跨度。

謝謝

編輯:

有趣的是,如果我這樣做它的工作原理...

var label = $("#foo + label"); 
var textVal = $(">span",label).text(); 
+0

這是奇特... – BoltClock 2011-12-14 16:27:36

回答

1

嘗試以下操作:

var textVal = $("label[for='foo'] span").text(); 
+0

是的,這和我的編輯工作來,但我還是不明白,爲什麼我的第一選擇沒因爲選擇器$(「#foo + label」)的第一部分工作正常 – 2011-12-14 14:52:20

1

這是工作在IE8中爲我。也許它,因爲你沒有關閉「上checked="checked

?例如:。http://jsfiddle.net/mEAYr/

+0

這只是stackoverflow不顯示它的原因。哦,順便說一句,即時通訊使用IE7 – 2011-12-14 15:25:04