我有以下jQuery脚本
<script>
$(document).ready(function(){
$('#bashing_title').change(function(){
$(".selectInput").hide();
$("#"this.value).show();
});
});
</script>
假设在选择下拉列表时显示表单字段。但事实并非如此。我猜它可能是因为生成的html是
<option value="Title 1" value="1">Title 1</option>
但是,如果我将abover jquery代码更改为此
<script>
$(document).ready(function(){
$('#bashing_title').change(function(){
$(".selectInput").hide();
$("#1").show();
});
});
</script>
有效。 但我有大约10种不同的选项ID。我该如何解决?
我希望我有意义
答案 0 :(得分:2)
更改
$("#"this.value).show();
到
$("#"+this.value).show();
并删除重复的value
属性,即更改
<option value="Title 1" value="1">Title 1</option>
到
<option value="1">Title 1</option>
答案 1 :(得分:1)
$("#"+this.value).show();
答案 2 :(得分:1)
将其更改为 $( “#” + THIS.VALUE).show();
答案 3 :(得分:1)
是否可以像在#和this.value
之间添加“+”一样简单答案 4 :(得分:1)
您需要正确连接字符串:
$("#" + this.value).show();
此外,HTML标记中存在错误,应该是:
<option title="Title 1" value="1">Title 1</option>
而不是:
<option value="Title 1" value="1">Title 1</option>
其中,您有两个值,这会导致您的问题。
答案 5 :(得分:0)
this
不包含字符串但包含一个对象:元素本身。 this
没有名为value
的属性,因此this.value
将无效。您必须访问由this.options[this.selectedIndex].value
或jQuery $(this).val()
选择的子项。这应该是一个有效的解决方案:
$(document).ready(function(){
$('#bashing_title').change(function(){
$(".selectInput").hide();
var element = $(this).val();
$("#" + element).show();
});
});