学而实习之 不亦乐乎

jQuery基础:操作DOM元素

2019-02-12 14:50:56

1.$()函数

我们一直在使用$()函数来访问文档中的元素,它能够生成一个jQuery对象,指向CSS选择符所描述的一组元素。
以创建一个返回顶部的锚为例

创建元素:

$('<a href="#top">back to top</a>');

插入新元素:

$('<a href="#top">back to top</a>').insertAfter('div.chapter p');
$('<a id="top"></a>').prependTo('body');

其他插入元素的方法:
.insertBefore()在现有元素外部、之前添加内容;
.prependTo()在现有元素内部、之前添加内容;
.appendTo()在现有元素内部、之后添加内容;
.insertAfter()在现有元素外部、之后添加内容。

2.包装元素

下面的例子,把脚注插入到页脚前面后,我们使用.wrapAll()把所有脚注都包含在一个<ol>中。然后再使用.wrap()将每一个脚注分别包装在自己的<li>中。

$('span.footnote')
    .insertBefore('#footer')
    .wrapAll('<ol id="notes"></ol>')
    .wrap('<li></li>');

3.使用反向插入

像.insertBefore()和.appendTo()这样的插入方法,一般都有一个对应的反向方法。反向方法也执行相同的操作,只不过“目标”和“内容”正好相反。有时候这很有用。

下面使用.before()代替.insertBefore()来重构代码。

$(document).ready(function () {
    var $notes = $('<ol id="notes"></ol>')
        .insertBefore('#footer');
    $('span.footnote').each(function (index) {
        $(this)
            .before('<sup>' + (index + 1) + '</sup>')
            .appendTo($notes)
            .wrap('<li></li>');
    });
});

4.复制元素

在复制元素时,需要使用jQuery的.clone()方法,这个方法能够创建任何匹配的元素集合的副本以便将来使用。与使用$()创建元素时一样,在为复制的元素应用一种插入方法之前,这些元素不会出现在文档中。    
如:

$('div.chapter p:eq(0)').clone();

5.元素内容的设置与获取

.html()方法在不传递参数的情况下,返回匹配的元素中的HTML内容(即HTML代码段)。而传入参数后,元素的内容将被传入的HTML替换掉(要注意传入的HTML必须是有效的,而且要对特殊字符进行转义)
.text()方法在不传递参数的情况下,返回匹配的元素中的文本内容(即不含HTML标签的文本内容),如果想要去掉HTML标签,那就用这个方法。而传入参数后,元素的内容将被传入的文本替换掉,即使在内容中加入元素标签也会当作文本显示出来。
如:

$('p').text('<br /><strong>加粗文本</strong><br/>');

页面上也显示
<br /><strong>加粗文本</strong><br/>