-1

私はこのjqueryコードを持っています

$("#eioShowLink").on('click',function(){
        $("#ioEditRelatedConcepts").html('');
        $.getJSON("http://localhost/Mar7ba/Ontology/getRelatedConceptsAndRelations/"+conceptName+"/TRUE", function(data){
            var concepts = data[0];
            var relations = data[1];
            for(var i = 0 ; i < concepts.length ; i++){
                (function(currentConcept, currentRelation) {
                    $.getJSON("http://localhost/Mar7ba/InformationObject/getIOsForConcept/"+currentConcept+"/TRUE" , function(data1){
                        var IOS = '';
                        IOS +="<option>Select IO</option>";
                        for(var j=0;j<data1.length;j++){
                            IOS+="<option>"+data1[j]+"</option>";
                        }
                        $("#ioEditRelatedConcepts").append('<p>\n\
              connect to\n\
              <span class="ioAddConcept">'+ currentConcept +'</span>\n\
              with\n\
              <span class="ioAddRelation">'+ currentRelation +'</span>\n\
              <select name ="concetedIOs[]" class="TypeSelector">'+IOS+'</select>\n\
              <span class="errorMessage"></span>\n\
              <a href="#" class="removeA" id="eioRemoveIO">remove</a>\n\
              </p>\n\
              <p>');
                    });
                })(concepts[i], relations[i]);
            }
        });

    });

うまくいきました。リンク「eioremoveIO」を押したときに、最も近いPタグを削除したいので、これを試しました。

$("#editOnePlace").on('click','#eioRemoveIO',function(){
    $(this).closest('p').remove();
});

でも押しても何も起こらない、発射すらしていないようです、何が悪いのか教えていただけませんか?

編集

#editOnePlace"私のdivのIDです(ここには表示されません)

編集

html

 <li>
                <p>
                    <label>Concepts</label>
                    <a href="#" class="smallLink" id="eioShowLink">Show Concepts</a>
                </p>
                <div id="ioEditRelatedConcepts">
                </div>
            </li>
4

2 に答える 2

3

jQuery関数closestは、最も近い祖先を提供します。prev/ nextを使用して、前/次の兄弟を取得できます。

$("#editOnePlace").on('click','#eioRemoveIO',function(){
    $(this).prev('p').remove();
});
于 2012-07-03T06:19:25.870 に答える
2

最近のバージョンのjQueryを使用していると仮定します。

 $('#eioRemoveIO').live('click',function(){     
    $(this).closest('p').remove();
 }); 
于 2012-07-03T06:19:42.953 に答える