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