js代码适用于一个变量(?),如何使其适用于多个变量
js code works for one variable(?), how to make it work for many?
我有js的工作代码,它为所选选项显示不同的div。
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$('#box1').hide();
$('#box2').hide();
$('#box3').hide();
$("#thechoices").change(function(){
$("#" + this.value).show().siblings().hide();
});
$("#thechoices").change();
});
</script>
</head>
<body>
<select id="thechoices">
<option value="box1">Box 1</option>
<option value="box2">Box 2</option>
<option value="box3">Box 3</option>
</select>
<!-- the DIVs -->
<div id="boxes">
<div id="box1"><p>Box 1 stuff...</p></div>
<div id="box2"><p>Box 2 stuff...</p></div>
<div id="box3"><p>Box 3 stuff...</p></div>
</div>
</body>
</html>
拜托,我没有js的经验,所以我不知道如何在一个页面上为多个"选项"工作几次。类似复制粘贴的东西,但比这个更合适:
<script type="text/javascript">
$(document).ready(function(){
$('#box1').hide();
$('#box2').hide();
$('#box3').hide();
$('#box4').hide();
$('#box5').hide();
$('#box6').hide();
$("#thechoices").change(function(){
$("#" + this.value).show().siblings().hide();
});
$("#thechoices2").change(function(){
$("#" + this.value).show().siblings().hide();
});
$("#thechoices").change();
});
$("#thechoices2").change();
});
</script>
</head>
<body>
<select id="thechoices">
<option value="box1">Box 1</option>
<option value="box2">Box 2</option>
<option value="box3">Box 3</option>
</select>
<!-- the DIVs -->
<div id="boxes">
<div id="box1"><p>Box 1 stuff...</p></div>
<div id="box2"><p>Box 2 stuff...</p></div>
<div id="box3"><p>Box 3 stuff...</p></div>
</div>
<select id="thechoices2">
<option value="box4">1</option>
<option value="box5">2</option>
<option value="box6">3</option>
</select>
<!-- the DIVs -->
<div id="boxes">
<div id="box4"><p>1 stuff...</p></div>
<div id="box5"><p>2 stuff...</p></div>
<div id="box6"><p>3 stuff...</p></div>
</div>
我知道你可以帮我,这看起来很简单,但我无法应付。如何更改我的第二个代码,使其以相同的方式工作,但不只是针对两个选择器。很多人都需要它。不想像我的第二段代码那样复制粘贴相同的部分。
避免重复ID,并为每个选择菜单提供一种方法来寻址其相应的框。
在HTML:中
- 将
id="thechoices"
更改为class="thechoices"
- 始终将
id="boxn"
更改为class="boxn"
- 在
<div class="boxWrapper">...</div>
中包装每个选择及其相应的框
现在使用以下jQuery:
$(document).ready(function(){
$(".thechoices").change(function(){
$this = $(this);
$this.closest(".boxWrapper").find("." + $this.val()).show().siblings().hide();
}).change();
});
请确保使用$this.val()
而不是this.value
以提高跨浏览器的可靠性。
我稍微修改了您的代码。检查这个:
<script type="text/javascript">
$(document).ready(function(){
$('.boxes div').hide();
$(".thechoices").change(function(){
var id = $(this).attr("id").replace("thechoices_", "");
var value = parseInt($(this).val());
$("#boxes_" + id + " div:eq(" + (value -1) + ")").show().siblings().hide();
});
$(".thechoices").change();
});
</script>
<select class="thechoices" id="thechoices_1">
<option value="1">Box 1</option>
<option value="2">Box 2</option>
<option value="3">Box 3</option>
</select>
<!-- the DIVs -->
<div class="boxes" id="boxes_1">
<div><p>Box 1 stuff...</p></div>
<div><p>Box 2 stuff...</p></div>
<div><p>Box 3 stuff...</p></div>
</div>
<select class="thechoices" id="thechoices_2">
<option value="1">Box 1</option>
<option value="2">Box 2</option>
<option value="3">Box 3</option>
</select>
<!-- the DIVs -->
<div class="boxes" id="boxes_2">
<div><p>Box 1 stuff...</p></div>
<div><p>Box 2 stuff...</p></div>
<div><p>Box 3 stuff...</p></div>
</div>
这将在任何select
标签上运行:
$("select").change(function(){
$("#" + this.value).show().siblings().hide();
});
相关文章:
- JQueryhide()不适用于Mozzilla,但适用于Chrome
- PHP中的setcookie仅适用于localhost
- html5 drawImage适用于firefox,而不是chrome
- 提供“;onClick"适用于iPad(触摸屏)和桌面用户的默认功能
- AngularJS-使模型变量可用于jQuery
- jQuery表单验证适用于Mozilla和Internet Explorer,但不适用于Chrome或Safari
- ResolveUrl是否适用于././也
- Firebase updateChildValues适用于IOS,但不适用于Web和Android
- JavaScript警报适用于int,但不适用于string
- SQLite插件适用于Mac和Windows,但不适用于手机上的Safari
- Regex Replace仅适用于Last Match
- 使变量可用于不带闭包的异步调用
- window.onload适用于aspx页面,但不适用于普通html
- Jquery Ajax POST不工作.适用于GET
- 画布上的自定义字体仅适用于safari
- Javascript仅适用于alert()和Debug模式
- JS适用于Firefox和Safari,但不适用于Chrome.此处'是我的网站
- jQuery - IE7 - 变量未定义(适用于Chrome,Safari,Firefox)
- javascript 函数 - 传递给函数的变量适用于IE,但不适用于Firefox
- 在用户定义的变量上获得selecteindex -适用于IE而不是Firefox