1

以下の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>

しかし、上記のjqueryコードをこれに変更すると

<script>
$(document).ready(function(){
    $('#bashing_title').change(function(){
        $(".selectInput").hide();
        $("#1").show();
    });
});

</script>

できます。しかし、私は約10の異なるオプションIDを持っています. どうすれば修正できますか?

私が理にかなっていることを願っています

4

6 に答える 6

2

変化する

$("#"this.value).show();

$("#"+this.value).show();

重複するvalue属性、つまり変更を削除します

<option value="Title 1" value="1">Title 1</option>

<option value="1">Title 1</option>
于 2013-05-07T17:53:53.373 に答える
1

# と this.value の間に「+」を追加するだけで簡単にできますか

于 2013-05-07T17:56:14.110 に答える
1

あなたが書くべきです。

  $("#"+this.value).show();
于 2013-05-07T17:54:33.470 に答える
1

$("#"+this.value).show(); に変更します。

于 2013-05-07T17:54:55.677 に答える
0

this文字列は含まれていませんが、オブジェクト (要素自体) が含まれています。thisと呼ばれるプロパティがないため、機能しませvaluethis.valuethis.options[this.selectedIndex].valuejQueryによって、または経由して選択された子にアクセスする必要があります$(this).val()。これは実用的なソリューションである必要があります。

$(document).ready(function(){
    $('#bashing_title').change(function(){
        $(".selectInput").hide();
        var element = $(this).val();
        $("#" + element).show();
    });
});
于 2013-05-07T18:01:19.807 に答える