根据两个单独的选择选项显示 div

发布于 2024-12-11 15:04:12 字数 981 浏览 0 评论 0原文

我偶然发现了一个问题。

我有两个不同的选择字段。每个都有颜色选项:蓝色、绿色、黑色、黄色。我想根据您所做的选择显示不同的 div,如下所示:

选择黄色+黑色显示 div#1 选择黑色+黄色显示 div#2 ETC。 等等。

我怎样才能以聪明的方式做到这一点?

更新:

这是我现在拥有的一个代码片段(它执行我想要的操作,但仅取决于一个选择元素):

<script>
$(document).ready(function() {
  $(function() {
    $('#thecolor').change(function(){
        $('#box_image, #box_image2, #box_image3, #box_image4').hide();
        $('.' + $(this).val()).show();
    });
  });
});

<select id="thecolor">
   <option>Choose outer color</option>
   <option value="blue">Blue</option>
   <option value="red">Red</option>
   <option value="dark_green">Green</option>
   <option value="purple">Purple</option>
 </select>

进而

<div id="box_image" style="display:none;" class="blue">
  <img src="images/wine-bottle-box_blue.png"/>
</div>

I have stumbled upon a problem.

I have two different select fields. Each of these have color options: blue, green, black, yellow. I want to show different divs depending on which selctions you make like so:

Selection yellow+black shows div#1
Selection black+yellow shows div#2
etc.
etc.

How can I do this in a smart way?

Update:

Here is a code snippet I have right now (it does what I want but only depending on one select element):

<script>
$(document).ready(function() {
  $(function() {
    $('#thecolor').change(function(){
        $('#box_image, #box_image2, #box_image3, #box_image4').hide();
        $('.' + $(this).val()).show();
    });
  });
});

<select id="thecolor">
   <option>Choose outer color</option>
   <option value="blue">Blue</option>
   <option value="red">Red</option>
   <option value="dark_green">Green</option>
   <option value="purple">Purple</option>
 </select>

and then

<div id="box_image" style="display:none;" class="blue">
  <img src="images/wine-bottle-box_blue.png"/>
</div>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

べ映画 2024-12-18 15:04:13

为此,您可以使用 jQuery 中的 toggle 函数来显示/隐藏基于 2 个选择列表的值的元素。只需将两个选择列表挂钩到同一个点击处理程序并检查条件即可。

var $s1 = $('#select1').change(change);
var $s2 = $('#select2').change(change);

function change(){
    $('#div1').toggle($s1.val() == 'Yellow' && $s2.val() == 'Black')
    $('#div2').toggle($s1.val() == 'Black' && $s2.val() == 'Yellow')
};

实例:http://jsfiddle.net/6AUn6/

To do this you can use the toggle function in jQuery to show/hide an element based on the values of 2 select lists. Just hook both select lists up to the same click handler and check the condition.

var $s1 = $('#select1').change(change);
var $s2 = $('#select2').change(change);

function change(){
    $('#div1').toggle($s1.val() == 'Yellow' && $s2.val() == 'Black')
    $('#div2').toggle($s1.val() == 'Black' && $s2.val() == 'Yellow')
};

Live example: http://jsfiddle.net/6AUn6/

苏辞 2024-12-18 15:04:13

通过选项组合命名你的 div 的 id 怎么样?
因此,选择yellow+black将显示id为div_yellow_black的div。

在 jquery 中,类似

var var1 = $("#option1").val();
var var2 = $("#option2").val();
$("#div_" + var1 + "_" + var2).show();

How about naming your div's id by the options combination.
So selecting yellow+black will display div with id like div_yellow_black.

In jquery, something like

var var1 = $("#option1").val();
var var2 = $("#option2").val();
$("#div_" + var1 + "_" + var2).show();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文