Javascript 使用jquery将img包装在div中
这是我的基本代码Javascript 使用jquery将img包装在div中,javascript,jquery,html,Javascript,Jquery,Html,这是我的基本代码 <div class="galleria-image"> <div class="galleria-layer"> </div> </div> <div class="galleria-image"> <div class="galleria-layer"> </div> <img src="blah"> </div> 我想
<div class="galleria-image">
<div class="galleria-layer">
</div>
</div>
<div class="galleria-image">
<div class="galleria-layer">
</div>
<img src="blah">
</div>
我想使用jQuery将我的元素包装在一个新元素中,如下所示:
<div class="galleria-image">
<div class="galleria-layer">
</div>
</div>
<div class="galleria-image">
<div class="galleria-layer">
</div>
<span class="zoom" id="ex1">
<img src="blah">
</span>
</div>
我尝试了一些jQuery方法,但都做不好。例如:
$('.galleria-image > img').wrap('<span class="zoom" id="ex1"></span>');
$('.galleria image>img').wrap('');
知道我应该做什么吗?你不需要关闭
此外,您的选择器错误(>)仅获取第一个子项。。
看这把小提琴
$(文档).ready(函数(){
警报($('.galleria image img')。长度>0?“存在”:“不存在”);
$('.galleria image img').wrap('');
});
var$galleria1=$(“.galleria image”).eq(1);
var$img=$galleria1.find('img').detach();
var$span=$('',{class:“zoom”,id:“ex1”});
$span.append($img);
$galleria1.追加($span);
在这里很好,你说你想用div
来包装图像,但是你用span
来包装图像,所以如果你要应用sayheight
或padding
你可能会遇到一些问题,因为span
是一个内联元素,其中div
是块级别element@Anton尽管如此,你永远不知道他期望什么,因为大多数时候,用户发布不同的东西,他们期望什么different@Mr.Alien是的,你是对的,当代码正确时,更难知道他期望什么:p你是说他不需要关闭
?他当然应该。您是否检查了jQuery生成的内容?一个正确打开和关闭的span标签:
。哇,伙计们,真的吗?如果您使用Wrap-,Wrap会自动为您关闭span标记;反对票怎么了@DaniëlKnippers我投了反对票,因为这并不能解决问题,你只是在简化代码……你写的选择器是错误的,但它是正确的,OP想得到第一个孩子。@罗斯只是在你的$('.galleria image>img')前面加了一行。wrap(''代码>警报($('.galleria image>img')。长度)代码>如果您看到一个警报显示任何>0的内容,那么它就存在。@Ross我没有使用Magento的经验,所以我能想到的最安全的方法是使用全局处理程序,如$.ajaxOptions-AjaxComplete或其他东西,只运行那一段代码,但警告它将在每个ajax请求完成后发生,所以请检查它何时触发,以及它是否触发,确保首先使用like.parent().is('span')
或类似的方法检查span是否已附加到该图像。这就是我所说的方法,我相信对于如何检测最后一次发生的时间会有一些帮助。。祝你好运:)这几乎是可行的,但结束跨度元素在img之前,即
$(document).ready(function(){
alert( $('.galleria-image img').length > 0 ? "exists" : "not exists" );
$('.galleria-image img').wrap('<span class="zoom" id="ex1">');
});
var $galleria1 = $('.galleria-image').eq(1);
var $img = $galleria1.find('img').detach();
var $span = $('<span>', { class: "zoom", id: "ex1"});
$span.append($img);
$galleria1.append($span);