从下面的HTML中,我想用jQuery获取<label></label>
内的文本,但是在标签中排除了span内的文本。
<label for="name">Name<span class="required">Required</span></label>
<input type="text" class="requiredField" name="name" />
我正在尝试关注:
jQuery('.requiredField').each(function() {
var labelText = jQuery(this).prev().text();
}
它还接收范围.required
内的文本(即NameRequired),但我只想获得“名称”。我怎么能排除这个?感谢。
答案 0 :(得分:2)
一种有效的方式:
创建一个可以一次又一次呼叫的fn
,而不是每个地方都必须clone
和remove
:
jQuery.fn.onlyText = function() {
return this
.clone()
.children()
.remove()
.end()
.text();
};
// And then your code
jQuery('.requiredField').each(function() {
var labelText = jQuery(this).prev().onlyText();
});
答案 1 :(得分:1)
这应该有效:
jQuery('.requiredField').each(function() {
labelTextCopy = jQuery(this).prev().clone();
copyChild = labelTextCopy.children();
copyChild.remove();
console.log(labelTextCopy.text());
})
JSFiddle:http://jsfiddle.net/5xRLg/5/