1

2つのselectタグのいずれかで起動するjQuery関数が変更されましたが、私の質問は、どちらのselectタグが起動したかを確認する条件で何が間違っていたかです。

$(document).ready(function(){
    $('#aqQuestionIoli .ConceptSelector1,#aqAnswerIoli .ConceptSelector1').on('change',function(){
        var concetp = $(this).val();
        alert(concetp);
        $.getJSON("http://localhost/Mar7ba/InformationObject/getIOsForConcept/"+concetp+"/TRUE",function(data){
            var options = '<option>Select IO</option>';
            for(var i=0;i<data.length;i++){
                options+="<option>"+data[i]+"</option>";
            }
            if ($('#aqQuestionIoli .ConceptSelector1').length){
                $("#aqIoQuesSelector").html(options);
            }
            if ($('#aqAnswerIoli .ConceptSelector1').length){
                $("#aqIoAnswerSelector").html(options);
            }
        });
    });
});

ここにhtmlをコード化する

4

4 に答える 4

0

あなたがこの部分を意味するならば:

            if ($('#aqQuestionIoli .ConceptSelector1').length){
                $("#aqIoQuesSelector").html(options);
            }
            if ($('#aqAnswerIoli .ConceptSelector1').length){
                $("#aqIoAnswerSelector").html(options);
            }

彼らはどの選択タグが発火したかをチェックしませんでした。ドキュメントにその要素が含まれていることを確認するだけです。

試す

$(document).ready(function(){
    $('#aqQuestionIoli .ConceptSelector1,#aqAnswerIoli .ConceptSelector1').on('change',function(){
        var concetp = $(this).val();
        alert(concetp);
        var thisid = this.id;
        $.getJSON("http://localhost/Mar7ba/InformationObject/getIOsForConcept/"+concetp+"/TRUE",function(data){
            var options = '<option>Select IO</option>';
            for(var i=0;i<data.length;i++){
                options+="<option>"+data[i]+"</option>";
            }
            if (thisid == 'aqQuestionIoli')){
                $("#aqIoQuesSelector").html(options);
            }
            if (thisid == 'aqAnswerIoli'){
                $("#aqIoAnswerSelector").html(options);
            }
        });
    });
});
于 2012-05-21T17:20:34.597 に答える
0
$(document).ready(function(){
    $('#aqQuestionIoli .ConceptSelector1,#aqAnswerIoli .ConceptSelector1').on('change',function(){
        var concetp = $(this).val();
        alert(concetp);
        var context = this;
        $.getJSON("http://localhost/Mar7ba/InformationObject/getIOsForConcept/"+concetp+"/TRUE",function(data){
            var options = '<option>Select IO</option>';
            for(var i=0;i<data.length;i++){
                options+="<option>"+data[i]+"</option>";
            }
            if (context === $('#aqQuestionIoli .ConceptSelector1')[0]){
                $("#aqIoQuesSelector").html(options);
            }
            if (context === $('#aqAnswerIoli .ConceptSelector1')[0]){
                $("#aqIoAnswerSelector").html(options);
            }
        });
    });
});

簡単な例については、これを見てください。http: //jsfiddle.net/6zsnx/1/ 繰り返しますが、これを行うにはいくつかの方法があります。あなたのHTMLを見ることができれば、おそらくあなたにもっと明確な答えを与えることができるでしょう。

于 2012-05-21T17:28:49.193 に答える
0

を使用しidてオプションを割り当てることができます。そうすれば、どちらが変更されたかを確認する必要もありません。

var id = $(this).attr('id');
$('#' + id).html(options);

私はそれをテストしていませんが、なぜそれが機能しないのかわかりません(何かを見逃していない限り:|)

于 2012-05-21T17:30:22.863 に答える
0
$(document).ready(function(){
    $('#aqQuestionIoli .ConceptSelector1,#aqAnswerIoli .ConceptSelector1').on('change',function(){
        var concetp = $(this).val();
        var select = $(this).attr('id');
        console.log(select);
        var $this = $(this);
        // the value of select can tell which select was fired.
        $.getJSON("http://localhost/Mar7ba/InformationObject/getIOsForConcept/"+concetp+"/TRUE",function(data){
            var options = '<option>Select IO</option>';
            for(var i=0;i<data.length;i++){
                options+="<option>"+data[i]+"</option>";
            }
            $this.html(options);

        });
    });
});
于 2012-05-21T17:31:08.883 に答える