Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery将img包装在div中_Javascript_Jquery_Html - Fatal编程技术网

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
来包装图像,所以如果你要应用say
height
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);