jQuery删除最近的P标记

时间:2012-07-03 06:13:03

标签: jquery

我有这个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>

2 个答案:

答案 0 :(得分:3)

jQuery函数最接近给出最近的祖先你可以使用prev / next来获得上一个/下一个兄弟。

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

答案 1 :(得分:2)

假设您使用的是最新版本的jQuery:

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