我想尝试做以下事情: 单击每个图像(缩略图)源应写入指定的输入。 我已经完成了那种......当时工作还不好!
无论点击什么图像,它都不会添加正确的来源,只是第一个来源。
如果再次点击相同/不同的图片,则不会删除添加的来源。
//一块jQuery脚本:
var imgSource = $('#textures li').find('img').attr('src');
$('ul#textures li img').on('click', function() {
$('input#imgPath').val($('input#imgPath').val() + imgSource);
});
小提琴,以便更好地理解: JS Fiddle link
P.S。我们将非常感谢您的回答!
答案 0 :(得分:2)
attr
仅返回第一个匹配元素的属性,您可以使用引用所点击元素的this
关键字。
$('ul#textures li img').on('click', function() {
$('#imgPath').val(this.src)
});
答案 1 :(得分:1)
use:$(this) - 表示click元素的属性
$('ul#textures li img').on('click', function() {
$('input#imgPath').val($('input#imgPath').val() + $(this).attr('src'));
});
答案 2 :(得分:1)
来自jQuery docs:
.attr()方法仅获取第一个元素的属性值 在匹配的集合中。
您的imgSource
变量是在事件处理程序之外声明的,因此它不会根据点击的图像改变其值 - 它只是保留第一张图像的值。
此外,之前的值未被删除,因为您要将值附加到已存在的值。
答案 3 :(得分:1)
你走了:
$('ul#textures li img').on('click', function() {
var imgSource = $('#textures li').find('img').attr('src');
$('input#imgPath').val($(this).attr("src"));
});
<强> DEMO 强>
它不适合你的原因是因为你已经定义了
var imgSource = $('#textures li').find('img').attr('src');
在功能之外。然后你进一步使用以下方法在文本框中设置相同的值:
$('input#imgPath').val($('input#imgPath').val() + imgSource);
我修改了这一行来使用这个操作符来获取img src。