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