使用jQuery在标签内部获取文本

时间:2012-12-30 21:15:17

标签: javascript jquery

从下面的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),但我只想获得“名称”。我怎么能排除这个?感谢。

2 个答案:

答案 0 :(得分:2)

一种有效的方式:
创建一个可以一次又一次呼叫的fn,而不是每个地方都必须cloneremove

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();
});

http://jsfiddle.net/OMS_/x7xPB/

答案 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/