如何jquery $('#some_id')。text(' some_text')有效?

时间:2016-11-02 19:53:22

标签: javascript jquery

我现在正在使用某些javascript并试图像这样设置span中的文字 -

<span id='span_id'></span>
.....
....
<script type='text/javascript'>
   $('#span_id').text('Hello World');
</script> 

到目前为止,我知道在html页面上更改/设置一些值/文本而不重新加载它我们必须使用ajax。我想知道这个 - $('#span_id').text('Hello World')如何在不重新加载页面的情况下工作

2 个答案:

答案 0 :(得分:2)

以下是jQuery(特别是manipulation.js)的来源,其中定义了函数:

text: function( value ) {
    return access( this, function( value ) {
        return value === undefined ?
            jQuery.text( this ) :
            this.empty().each( function() {
                if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {
                    this.textContent = value;
                }
            } );
    }, null, value, arguments.length );

}

它只是在所选节点上定义textContent属性。这会触发reflow / repaint事件(因为新文本将占用新的空间)但不会重新加载整页。您可以在此处了解nodeType值的含义:https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType

答案 1 :(得分:1)

使用User::PO jQuery标识ID为$('#span_id')的元素。从那里,span_id方法将文本设置为text。您无需重新加载javascript来更改DOM。最初加载页面后,脚本将运行,从而更改DOM。您无需重新加载页面。