3.1 获取或设置元素的内容

jQuery中有3个方法用来获取HTML中元素的内容,分别是text()、html()和val()。

● text():设置或返回所选元素的文本内容。

● html():设置或返回所选元素的内容(包括HTML标记)。

● val():设置或返回表单字段的值。

text和html的明显区别是text只返回元素的文本内容,而html返回的是将HTML解析后的内容。val返回的是表单的内容。

【示例3-1】get_set_content.html

        01    <body>
        02    <p id="test">
        03       有3个方法可以用于获取<strong>HTML元素</strong>的内容,分别是:<br/>
        04       <strong>text():设置或返回所选元素的文本内容</strong><br/>
        05       <strong>html():设置或返回所选元素的内容(包括HTML标记)</strong><br/>
        06       <strong>val():设置或返回表单字段的值</strong><br/>
        07    </p>
        08    <textarea name="textvalue" cols="80" rows="5"></textarea>
        09    <div>
        10   <button id="btn1">显示文本</button>
        11   <button id="btn2">显示HTML</button>
        12    </div>
        13    </body>

上面的代码在HTML中放置了一个id为test的p元素,在段落内部设置了一些HTML代码,在段落下面添加了一个textarea元素,用于显示文本的btn1和HTML的btn2。接下来对btn1编写代码,使其获取p元素内部的文本内容,并显示到textarea中。btn2将显示HTML内容到textarea元素。这两个按钮的事件处理实现如下:

        01    <script type="text/javascript">
        02      $(document).ready(function(e) {
        03        $("#btn1").click(function(e) {
        04           var textStr=$("p").text();        //获取段落的文本内容
        05           $("#textvalue").text(textStr);   //在textarea中显示文本内容
        06        });
        07        $("#btn2").click(function(e) {
        08           var htmlStr=$("#test").html();   //获取段落的HTM内容
        09           $("#textvalue").text(htmlStr);   //在textarea中显示HTML内容
        10        });
        11    });

在上面的代码中,按钮btn1用于使用text获取段落的文本内容并显示到textarea中,显示效果如图3.1所示。

图3.1 显示文本内容

可以见到,即便段落标记内部包含HTML字符串,但是text()只是取出其中的文本内容。在为textarea赋值时,使用带参数的text函数,这个参数将作为文本内容设置给textarea,因此在textarea中显示HTML文本内容。

btn2按钮使用html()方法获取HTML格式的内容,输出结果如图3.2所示。

图3.2 显示HTML内容

html()方法显示段落标签中的HTML元素,可以看到它包含HTML标记。同样,如果为html()方法带一个参数,表示将为指定的目标元素设置HTML内容,比如可以编写如下代码:

        $("#test2").html(htmlStr);     //将HTML内容设置到id为test2的div中

这就使得HTML代码的设置给了名为test2的div,这样就可以动态地为div添加新的HTML内容。