jQuery没有显示表单字段

时间:2013-05-07 17:53:08

标签: javascript jquery html5

我有以下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。我该如何解决?

我希望我有意义

6 个答案:

答案 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();
    });
});