附加到非现有元素会在JQuery中创建该元素的新实例吗?

时间:2013-03-21 07:06:04

标签: jquery

在我的浏览器中,我有一个文本框和一个提交按钮。使用文本框中的文本,我想将该文本作为列表项添加到无序列表的末尾。无序列表尚不存在,但我希望文本显示在文本框和提交按钮下。我做了这个功能:

代码:

 function display(text) {                       // 'text' from the textbox
      $('ul').append('<li>' + text + '</li>');
 }

当我使用.display()时,我希望能够将参数中的文本显示为无序列表中的新列表项。

问题:如果尚未存在,那么JQuery是否会创建一个新的'ul',还是应该先创建一个?ul?如果是这样,我是否正确使用JQuery将列表项添加到无序列表?

任何建议都有帮助!谢谢!

2 个答案:

答案 0 :(得分:2)

首先,您必须使用$('<ul>')创建新的<ul>,而$('ul')选择已存在的元素。

有关详细信息,请参阅jQuery( html [, ownerDocument ] )

然后你可以像这样重写你的代码:

var ul = $('<ul>');  // save the new created element.
ul.appendTo('body')  // add it into <body> or other place you want to insert
function display(text) {                       // 'text' from the textbox
      ul.append('<li>' + text + '</li>');
 }

答案 1 :(得分:1)

您的$('ul')选择器会创建一个包含页面上每个<ul>元素的jQuery数组。如果没有<ul>个元素,则数组为空。如果你想要一个<ul>元素并且没有一个,你需要自己创建它,当然你可以轻松地使用jQuery。

您添加<li>元素的方式很好,但如果页面上没有<ul>则不会执行任何操作。

另外,您真的不应该像这样选择标记名。如果页面上有多个<ul>怎么办?你应该按id或class选择它。