如何使用jquery获取这样的元素的文本?

时间:2011-10-28 10:02:31

标签: jquery jquery-selectors

有一个像<label for=name>fill in your name<span>*</span></label>这样的html代码片段,当使用jquery $("label[for='name']").text()时,它返回'填写你的名字*',怎样才能准确地“填写你的名字”?

2 个答案:

答案 0 :(得分:1)

我建议你不要放<span>*</span>而是使用伪元素(:after)。这样你就可以轻松获得更好的结果。

<强> See this EXAMPLE

请注意清洁标记:

<label for="name" class=required>Fill in your Name</label>

默认情况下,每个.required标签都会显示星标,这要归功于应用了:after伪元素:

label.required:after {
    content: '*';
}

重要提示: 上述解决方案在IE7及更低版本上将失败,因为它们不支持伪元素。

答案 1 :(得分:1)

contents()允许您选择所有节点类型 - 仅包括文本节点。例如,这将返回元素的第一个文本节点的文本:

$("label[for='name']").contents().eq(0).text();
  

工作演示:http://jsfiddle.net/mX8zK/