我正在尝试在Jquery中创建多个div元素。我曾尝试过以下解决方案。
create html with jquery
Creating a div element in jQuery
我需要在jquery
中创建html元素<div class="r-c-grid ">
<div class="r-c-imgmask">
<img src="http://example.com/images/path.jpg">
</div>
<div class="r-c-gradient"></div>
<h3 class="r-c-grid-title"><a href="http://example.com/link.php">Post Title</a></h3>
</div>
我能够通过上述解决方案做到这一点,但它更复杂。任何人都建议我在最新的jquery中有更好的方法来做到这一点。
答案 0 :(得分:2)
var str='<div class="r-c-grid ">'
+'<div class="r-c-imgmask">'
+' <img src="http://example.com/images/path.jpg">'
+'</div>'
+'<div class="r-c-gradient"></div>'
+'<h3 class="r-c-grid-title"><a href="http://example.com/link.php">Post Title</a></h3>'
+'</div>';
$(str).appendTo(yourselector);
或者可以尝试
$(yourselector).append(str);
参见 DEMO
参考 append() 和 appendTo()
答案 1 :(得分:1)
您可以按如下方式一次性添加整个块:
$('body').append('\
<div class="r-c-grid "> \
<div class="r-c-imgmask"> \
<img src="http://example.com/images/path.jpg"> \
</div> \
<div class="r-c-gradient"></div> \
<h3 class="r-c-grid-title"><a href="http://example.com/link.php">Post Title</a></h3> \
</div> \
');
请注意,需要使用反斜杠将这样的字符串分成多行而不会导致语法错误。这有效地注释了换行符。
答案 2 :(得分:0)
只需尝试一下,
$('body').append('<div class="r-c-grid ">
<div class="r-c-imgmask">
<img src="http://example.com/images/path.jpg">
</div>
<div class="r-c-gradient"></div>
<h3 class="r-c-grid-title"><a href="http://example.com/link.php">Post Title</a></h3>
</div>');
或试试,
$rci=$('<div class="r-c-imgmask" />')
.append('<img src="http://example.com/images/path.jpg">');
$rcg=$('<div class="r-c-gradient" />');
$h3=$('<h3 class="r-c-grid-title" />')
.append('<a href="http://example.com/link.php">Post Title</a>');
$rc=$('<div class="r-c-grid " />').append($rci, $rcg, $h3);
$('body').append($rc);
答案 3 :(得分:0)
你的意思是像这样的半动态吗?
function addDiv(parentId, img, link, text){
var div = '<div class="r-c-grid "><div class="r-c-imgmask">'+
'<img src="http://example.com/images/'+img+'">'+
'</div><div class="r-c-gradient"></div>'+
'<h3 class="r-c-grid-title">'+
'<a href='+link+'>'+text+'</a></h3></div>';
document.getElementById(parentId).innerHtml += div;
}