如何在jQuery中创建div元素?
您可以使用append(添加到父级的最后一个位置)或prepend(添加到其父级的第一个位置):
$('#parent').append('<div>hello</div>');
// or
$('<div>hello</div>').appendTo('#parent');
或者,可以使用不同答案中提到的.html()或.add()。
从技术上讲,$(“<div></div>”)将“创建”一个div元素(或者更具体地说是一个div DOM元素),但不会将其添加到HTML文档中。然后,您需要将其与其他答案结合使用,以实际使用它做任何有用的事情(例如使用append()方法等)。
操纵文档为您提供了关于如何添加新元素的各种选项。
从jQuery1.4开始,您可以将属性传递给自封闭元素,如下所示:
jQuery('<div>', {
id: 'some-id',
class: 'some-class some-other-class',
title: 'now this div has a title!'
}).appendTo('#mySelector');
在文档中
示例可以在jQuery1.4发布:你必须知道的15个新特性中找到。
所有这些都对我有用,
HTML部分:
<div id="targetDIV" style="border: 1px solid Red">
This text is surrounded by a DIV tag whose id is "targetDIV".
</div>
JavaScript代码:
//Way 1: appendTo()
<script type="text/javascript">
$("<div>hello stackoverflow users</div>").appendTo("#targetDIV"); //appendTo: Append at inside bottom
</script>
//Way 2: prependTo()
<script type="text/javascript">
$("<div>Hello, Stack Overflow users</div>").prependTo("#targetDIV"); //prependTo: Append at inside top
</script>
//Way 3: html()
<script type="text/javascript">
$("#targetDIV").html("<div>Hello, Stack Overflow users</div>"); //.html(): Clean HTML inside and append
</script>
//Way 4: append()
<script type="text/javascript">
$("#targetDIV").append("<div>Hello, Stack Overflow users</div>"); //Same as appendTo
</script>
d = document.createElement('div');
$(d).addClass(classname)
.html(text)
.appendTo($("#myDiv")) //main div
.click(function () {
$(this).remove();
})
.hide()
.slideToggle(300)
.delay(2500)
.slideToggle(300)
.queue(function () {
$(this).remove();
});
我认为这是添加div的最佳方法:
要将测试div附加到ID为div_ID的div元素,请执行以下操作:
$("#div_id").append("div name along with id will come here, for example, test");
现在将HTML附加到这个添加的测试div中:
$("#test").append("Your HTML");
下面是另一种使用jQuery创建div的技术。
元素克隆
假设您的页面中有一个现有的div,您希望使用jQuery克隆该div(例如,在表单中多次复制输入)。你可以这样做。
$('#clone_button').click(function(){$(“#clone_wrapper div:first”).clone().append('克隆').appendTo($(“#clone_wrapper”));});<script src=“https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js“></script><div id=“clone_wrapper”><div>Div公司</div></div><button id=“clone_button”>克隆我</按钮>
我刚刚为此制作了一个小型jQuery插件。
它遵循您的语法:
var myDiv = $.create("div");
DOM节点ID可以指定为第二个参数:
var secondItem = $.create("div","item2");
严重吗?没有。但是这个语法比$(“<div></div>”)好,而且它的价值非常高。
(答案部分复制自:jQuery document.createElement等效项?)
可以使用.jquery()方法创建单独的标记。并使用.append()方法创建子标记。由于jQuery支持链接,您还可以通过两种方式应用CSS。要么在类中指定它,要么只调用.attr():
var lTag = jQuery("<li/>")
.appendTo(".div_class").html(data.productDisplayName);
var aHref = jQuery('<a/>',{
}).appendTo(lTag).attr("href", data.mediumImageURL);
jQuery('<img/>',{
}).appendTo(aHref).attr("src", data.mediumImageURL).attr("alt", data.altText);
首先,我将一个列表标记附加到div标记并将JSON数据插入其中。接下来,我将创建一个列表的子标记,并提供一些属性。我已经将值赋给了一个变量,这样我就可以很容易地附加它。
如果它只是一个空div,这就足够了:
$("#foo").append("<div>")
or
$("#foo").append("<div/>")
它给出了相同的结果。
我希望这对代码有帮助。:)(我使用)
function generateParameterForm(fieldName, promptText, valueType) {
//<div class="form-group">
//<label for="yyy" class="control-label">XXX</label>
//<input type="text" class="form-control" id="yyy" name="yyy"/>
//</div>
// Add new div tag
var form = $("<div/>").addClass("form-group");
// Add label for prompt text
var label = $("<label/>").attr("for", fieldName).addClass("control-label").text(promptText);
// Add text field
var input = $("<input/>").attr("type", "text").addClass("form-control").addClass(valueType).attr("id", fieldName).attr("name", fieldName);
// lbl and inp => form
$(form).append(label).append(input);
return $(form);
}
您可以使用.add()创建一个新的jQuery对象并添加到目标元素中。然后使用链接继续。
例如jQueryApi:
$(“div”).css(“border”,“2px纯红色”).add(“p”).css(“背景”,“黄色”);第二部分{宽度:60px;高度:60px;边距:10px;浮动:左侧;}<script src=“https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js“></script><div></div><div></div><div></div><div></div><div></div><div></div>
如果您使用Jquery>1.4,您最好使用Ian的答案。否则,我将使用此方法:
这与celoron的答案非常相似,但我不知道他们为什么使用document.createElement而不是Jquery表示法。
$("body").append(function(){
return $("<div/>").html("I'm a freshly created div. I also contain some Ps!")
.attr("id","myDivId")
.addClass("myDivClass")
.css("border", "solid")
.append($("<p/>").html("I think, therefore I am."))
.append($("<p/>").html("The die is cast."))
});
//Some style, for better demonstration if you want to try it out. Don't use this approach for actual design and layout!
$("body").append($("<style/>").html("p{background-color:blue;}div{background-color:yellow;}div>p{color:white;}"));
我还认为,在这种情况下,将append()与回调函数一起使用更可读,因为您现在马上就可以看到将要向主体添加的内容。但这是一个品味问题,在编写任何代码或文本时总是如此。
通常,在JQuery代码中使用尽可能少的HTML,因为这大部分是意大利面代码。它容易出错,很难维护,因为HTML字符串很容易包含拼写错误。此外,它将标记语言(HTML)与编程语言(Javascript/Jquery)混合在一起,这通常是一个坏主意。
$(HTMLelement)可以使其成功。如果您想要epmty div,请将其用作$('<div></div>');。也可以通过相同的方法设置其他元素。如果您想在创建后更改内部HTML,可以使用HTML()方法。对于获取outerHTML作为字符串,您可以使用如下方式:
var element = $('<div/>');
var innerHTML = element.html(); // if you want set new HTML use it like this element.html('<b>new HTML</b>');
var outerHTML = element[0].outerHTML;
可替换为append()您也可以使用appendTo(),它具有不同的语法:
$("#foo").append("<div>hello world</div>");
$("<div>hello world</div>").appendTo("#foo");
如果您想创建任何HTML标记,可以尝试例如
var selectBody = $('body');
var div = $('<div>');
var h1 = $('<h1>');
var p = $('<p>');
如果你想在flay上添加任何元素,可以试试这个
selectBody.append(div);
创建内存DIV
$("<div/>");
添加单击处理程序、样式等,最后将其插入到DOM中的目标元素选择器中:
$(“<div/>”{//此处的属性text:“单击我”,id:“示例”,“class”:“myDiv”,//('class'在引号中更好)css:{颜色:“红色”,fontSize:“3em”,光标:“指针”},日期:{mouseenter:函数(){console.log(“请…”+$(this).text());},单击:函数(){console.log(“嗨!我的ID是:”+this.ID);}},追加:“<i>!!</i>”,appendTo:“body”//最后,附加到任何选择器}); // << 这里不需要做任何事情,因为我们在内部定义了财产。<script src=“//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js”></script>
与ian的答案类似,但我找不到适当处理财产对象声明中方法使用的示例,所以就这样。
这个怎么样?这里,pElement指的是您希望该div位于其中的元素(作为!:的子元素)。
$("pElement").append("<div></div");
您可以很容易地在字符串中向该div添加更多内容-属性,内容,您可以命名它。请注意,对于属性值,您需要使用正确的引号。
推荐文章
- 给一个数字加上st, nd, rd和th(序数)后缀
- 如何以编程方式触发引导模式?
- setTimeout带引号和不带括号的区别
- 为什么我的CSS3媒体查询不能在移动设备上工作?
- 在JS的Chrome CPU配置文件中,'self'和'total'之间的差异
- 用javascript检查输入字符串中是否包含数字
- 如何使用JavaScript分割逗号分隔字符串?
- 在Javascript中~~(“双波浪号”)做什么?
- 谷歌chrome扩展::console.log()从后台页面?
- 下一个元素的CSS选择器语法是什么?
- 未捕获的SyntaxError:
- [].slice的解释。调用javascript?
- 在jQuery中的CSS类更改上触发事件
- jQuery日期/时间选择器
- 我如何用CSS跨浏览器绘制垂直文本?