尝试将标记包装在图像周围,addClass和img的输入src作为标记的href:
$(document).ready(function() {
$(".new img").each(function() {
var src = $(this).attr('src').addClass('image');
var a = $('<a/>').attr('href', src);
$(this).wrap(a);
});
});
我的HTML:
<img class="new" src="pic0.png" title="Image_Title"/>
似乎无法让这个工作。任何建议都会有所帮助!
答案 0 :(得分:9)
两件事。首先,你的选择器向后 - 它应该是img.new
。其次,attr
返回一个字符串,而不是jQuery,所以你不能链接它。执行以下操作并且它应该有效:
$(document).ready(function() {
$("img.new").each(function() {
var $this = $(this);
var src = $this.attr('src');
$this.addClass('image');
var a = $('<a/>').attr('href', src);
$this.wrap(a);
});
});
答案 1 :(得分:5)
你的选择器只需要调整,这个:
$(".new img")
应该是:
$("img.new")
new
类 on <img>
本身,<img>
不是class="new"
元素的后代,这是什么你当前的选择器正在寻找。此外.attr('src')
获取一个字符串,因此您需要在调用之前添加该类,总体如下:
$(function() {
$("img.new").each(function() {
var src = $(this).addClass('image').attr('src');
var a = $('<a/>').attr('href', src);
$(this).wrap(a);
});
});
You can test it here,或更简单/更快的版本here:
$(function() {
$("img.new").each(function() {
var a = $('<a/>').attr('href', this.src);
$(this).addClass('image').wrap(a);
});
});