Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将jQuery文本节点对象转换为字符串_Javascript_Jquery_Text - Fatal编程技术网

Javascript 将jQuery文本节点对象转换为字符串

Javascript 将jQuery文本节点对象转换为字符串,javascript,jquery,text,Javascript,Jquery,Text,我正在使用以下代码: /** * Get Text Nodes from an Element * Returns and object unless number is passed in * Numbers is 0 based */ (function( $ ) { $.fn.textNodes = function(number) { var nodes = jQuery(this).contents().filter(function(){ return

我正在使用以下代码:

/**
 * Get Text Nodes from an Element
 * Returns and object unless number is passed in
 * Numbers is 0 based
 */
(function( $ ) {
$.fn.textNodes = function(number) {
    var nodes = jQuery(this).contents().filter(function(){
        return this.nodeType == 3;
    });
    if(jQuery.isNumber(number)){
        return nodes[number];
    }
    return nodes;
};
})( jQuery );
它用于从html中获取文本节点

例如:

<div>
    <span>Testing</span>
    What is this?
</div>

测试
这是什么?
我在找
这是什么?

这是可行的,因为我可以创建一个console.log并在控制台中查看结果

但当我尝试在输入字段中使用结果时,它会告诉我:
[对象文本]

如何将结果用作字符串值

我尝试了toString(),但结果是一样的,除非我遗漏了什么。

使用属性:

$("#yourInputField").val(yourTextNode.nodeValue);

当需要实际的文本使用时,您可以将文本节点作为DOM对象接收,这是正确的行为:
textContent
nodeValue


请参阅。

您的代码可以工作,但它没有使用jQuery的优点。那么:

(function($) {
    $.expr[':'].textnode = function(element) {
        return element.nodeType == 3;
    }

    $.valHooks["#text"] = { get: function(elem) {
        return $.trim(elem.nodeValue);
    }}

})(jQuery)
这样使用它:

lastText = $("div").contents(":textnode:last").val()

textContent
在旧浏览器(包括IE<9)中未实现。坚持使用
nodeValue
data
,这两种浏览器在所有主要浏览器中都可以使用。这是我问题的正确答案。我喜欢thg435的旋转。谢谢