在表单元素中链接 jquery

chaining jquery within a form element

我正在尝试根据从下拉菜单中选择的选项更改图像及其 link。我是 jQuery 的新手,但是已经阅读和观看了很多视频。我的困惑是有多种方法可以完成同样的事情,我不确定我是否使用了最新的代码。

我目前有:

<select onchange="$('.imageToSwap').attr('src', this.options[this.selectedIndex].value) .$('.linkToSwap').attr('href', this.options[this.selectedIndex].value);" ">

但它似乎不起作用。 图像变化完美!但是 link 并没有改变! link 与图像 link 相同。 任何帮助将不胜感激。 谢谢


以上已排序 - 谢谢


新问题!

好的,我已经为下一个问题工作了几个小时,但无济于事。我正在学习 - 这很好!

这是我的问题。我正在为 jQuery 使用 Image Zoom + Thumbnails 插件。 有一个标识为 img#zoom-primary 的主图像,在此下方有缩略图(单击它们会更改主图像)这些可以通过 class .imageToSwap

来标识

我有一个特定产品的选项下拉列表(以表格形式),我想根据所选选项(例如颜色)更改主图像和相应的缩略图。这样产品图像会随着颜色选项而变化。

每个选项有 8 张图片。因此,我想更改图像 src 和 href,每次将图像编号增加 1。 EG图片-1.png、图片-2.png等

这是我想出的功能 - 在一些帮助下(谢谢)!

var currentImageTS = 1;
function updateImageTS() {

$('img#zoom-primary').attr('src', this.options[this.selectedIndex].value + "0.png");


$(".imageToSwap").each (function(index, element) {
    $(element).attr('src', this.options[this.selectedIndex].value + currentImageTS + ".png")
    .attr('http', this.options[this.selectedIndex].value + currentImageTS + ".png");

    currentImageTS++;
    if (currentImageTS > 8) currentImageTS = 1;



})

}

本质上,当用户从下拉菜单中选择某些内容时,主图像需要更改,所有缩略图也需要更改。主图只有一个 img src,而缩略图有一个 img src 和一个 href

以上代码已包含在一个外部 javascript 文件中 - 这是 运行 各种其他 javascript 因此它被包含并且可以工作。

在我的表单中,我有以下代码来调用该函数:

<select onchange="$(updateImageTS())" />

但它似乎不起作用!

任何关于我哪里出错以及我应该尝试什么的帮助都将不胜感激。

谢谢

尝试:

<select onchange="$('.imageToSwap').attr('src',this.options[this.selectedIndex].value).attr('http',this.options[this.selectedIndex].value);" ">

当您链接 jQuery 时,您不会重复 $(...),因为 jQuery 对象 returns 相同 jQuery 对象上的任何方法。

更新 - OP 的第二个问题

我强烈建议在 <script></script> 块中定义一个单独的函数。然后您可以使用变量跟踪当前迭代:

var current = 1;
function update() {

    $('.imageToSwap').attr('src', this.options[this.selectedIndex].value + current + ".png")
    .attr('http', this.options[this.selectedIndex].value + current + ".png");

    current++;
    if (current > 4) current = 1;


}