使用ul li更改多选

Change multiple option with ul li

本文关键字:ul li 使用      更新时间:2023-09-26

在我的网店中,我有多个选项,每个选项都会更改图像。客户可以看到它会是什么样子。

示例:

<label>color group 1</label>
<select>
    <option value="red">red</option>
    <option value="yellow">yellow</option>
    <option value="blue">blue</option>
</select>
<label>color group 2</label>
<select>
    <option value="red">red</option>
    <option value="yellow">yellow</option>
    <option value="blue">blue</option>
</select>

选择这些选项时,图像的颜色会发生变化。为此,我使用了以下javascript,它自动添加了"color1=red&"answers"color2=red&"等

<script>
    $( "select" )
        .change(function () {
            var str = "http://www.ballonnenkoerier.nl/image/catalog/designer/image.php?product_id=<?php echo $product_id; ?>&",
            i = 0;
            $( "select option:selected" ).each(function() {
                i++;
                str += 'color' + i + '=' + $( this ).text() + '&';
            });
            str = str.replace(/&$/, '');
            $('#thumbnail').attr('src', str);
        })
    .change();
</script>

图像是这样工作的:

    <img id="thumbnail" src="image/catalog/designer/image.php?product_id=50&color1=red&color2=yellow&color3=blue&" title="image" alt="image" />

我的问题:

我想制作另一个下拉列表(这更友好,因为我可以使用<ul><li>列表显示颜色,但javascript不再工作。

是否有可能更改javascript以使用此方法?

我把这个放在一个JSFiddle中:http://jsfiddle.net/j0dv6ywe/

我希望有人能为我找到答案!!

假设您的列表看起来像这样。。。

<ul>
  <li class="red">Red</li>
  <li class="yellow">Yellow</li>
  <li class="blue">Blue</li>
</ul>

你已经按照你建议的样式来展示颜色。

那么你的jQuery处理程序可能是这样的。。。

$('ul li').click(function() {
 $(this).parent().find('.selected').removeClass('selected');
 $(this).addClass('selected');
 var str =  "http://www.ballonnenkoerier.nl/image/catalog/designer/image.php?product_id=<?php echo $product_id; ?>&",
        i = 0;
        $( "ul li.selected" ).each(function() {
            i++;
            str += 'color' + i + '=' + $( this ).text() + '&';
        });
        str = str.replace(/&$/, '');
        $('#thumbnail').attr('src', str);
});

试试看,你能看到我是如何努力让它适应你的情况的吗?让我知道这是否有帮助,或者我是否可以进一步帮助?