一旦你指定了一个选择器, 乐趣就开始了。你能改变,移动,删除和克隆元素。你还能通过简单的语法创建一个新元素。

有关 jQuery 操作方法的完整文档,请访问 http://api.jquery.com/category/manipulation/.

这里有一些方法帮助你改变已有的元素。在多数通常的任务中,你能执行内部HTML或元素属性的改变。jQuery 为这些操作的有序提供了简单, 跨浏览器的方法。你也能在典型的getter中使用相同的方法获取元素信息。 我们要看到的例子将贯穿这一节,但是特殊的,这有一些你可以使用的新的方法用于获取和设置元素信息。

Note

改变这些元素是琐碎的,但请记住这些改变将作用于选择器的 all 元素, 因此如果你打算改变一个元素,在调用setter方法前请确认你的选择器。

Note

当方法作为getters使用时,它们通常只工作在选择器的第一个元素,并且不会返回 jQuery 对象,所以你不能给它们链式添加方法。一个值得注意的例外是 $.fn.text; 描述如下, 它在选择器中获得所有元素的文档。

$.fn.html

获取或设置html文档。

$.fn.text

获取或设置text文档;HTML将被剥离。

$.fn.attr

获取和设置提供属性的值

$.fn.width

获取或设置作为整型选择器的第一个元素的pixels宽度。

$.fn.height

获取或设置作为整型选择器的第一个元素的pixels高度。

$.fn.position

为选择器中的第一个元素取得包含位置信息的对象,相对于它们第一个位置的祖先。这只有一个getter

$.fn.val

获取或设置form元素的值。


这里有一些移动DOM元素的方法;通常,这里有两个途径:

  • 放置与另外元素有关的选择元素Place the selected element(s) relative to another element

  • 放置一个与选择元素有关的元素Place an element relative to the selected element(s)

在例子中, jQuery 提供了 $.fn.insertAfter$.fn.after. $.fn.insertAfter 方法在你提供了参数的元素后面放置一个选择元素;$.fn.after 方法在选择元素后面放置一个带参数的元素。其它的方法允许这样的模式:$.fn.insertBefore and $.fn.before; $.fn.appendTo and $.fn.append; and $.fn.prependTo and $.fn.prepend.

这个方法为你进行的更多检测将依赖于那些你已经选择的元素,是否你将需要保存那些你加入到页面的元素引用。如果你需要保存引用,你也将生效第一次处理 -- 放置与其它元素有关的选择元素 -- 在这个例子中,作为你放置元素的返回值。 $.fn.insertAfter, $.fn.insertBefore, $.fn.appendTo, and $.fn.prependTo will be your tools of choice.


jQuery 提供了一个简单而优雅的途径,使用与你选择器同样的方法 $() 来创建新元素。



注意我们包含在第二个参数中的属性对象,属性名类被引用,而属性名的文本和链接却不是。属性名通常不被引用, 除非它们作为保留字(在这个例子中是作为类)。

当你创建一个新元素,它不会立刻添加到你的页面。一旦它被创建这里会有几个方法添加一个元素到页面里。


严格地讲,你不必在变量中保存创建的元素 -- 你能直接在$()后调用此方添加元素到页面。然后, 大多数时间你将引用添加的元素,而不需要在后面选择它。

你甚至能在添加元素的时候创建它,但这个例子请注意你不能获得新创建的元素的引用。


Note

在页面创建新元素的语法非常简单,模版会忽略在反复添加到DOM时所产生的巨大性能代价。如果你添加更多的元素到同一容器里,你将连接所有的html到单一的字符串中,接着追加字符到容器里替换掉一次一个的元素追加方式。你能使用一个数组收集所有的片段,然后 join 它们追加到同一字符串中。

var myItems = [], $myList = $('#myList');

for (var i=0; i<100; i++) {
    myItems.push('<li>item ' + i + '</li>');
}

$myList.append(myItems.join(''));