使用JQuery删除DOM元素

时间:2015-06-24 06:44:38

标签: jquery html

我正在使用HTML,如下所示。我想在单击时删除输入框以及图像按钮本身。

$scope.deletemissionpoints = function(missionpointid, missionid){
    alert(missionpointid +" "+ missionid);
    jsonData.deletePointId.push(missionpointid);
       $("#mission-"+missionid+"").find("li #"+missionpointid+"").remove();
    $("#mission-"+missionid+"").find("#"+missionpointid+"").find("img").remove(); 
};

在" ul"标签,图像和输入框也。 我正在编写如下所示的Jquery,但只有输入框被删除,图像仍然存在。我需要帮助使用jQuery选择DOM元素并调用它们的remove()方法。

{{1}}

3 个答案:

答案 0 :(得分:1)

您可以从mission.missioncontent中的数组scope中删除该元素,该元素也会使用view方法更新splice

查看代码中突出显示的更改:

<强> HTML

<div style="padding-top: 10px;">
    <ul id="beforeul" style="float: left; width: 100%;">
        <li ng-repeat="missioncontent in mission.missioncontent" style="padding: 2px; width: 100%;">
            <div style="float:right; clear:right; width:20%;">
                <span><a href="" style="" ng-click="deletemissionpoints($index)">
                //                                                      ^^^^^^
                    <img src="assets/img/delete.png" style="width: 20%; height: 20%;"></a>
                </span>
            </div>
            <div>
                <input id="{{missioncontent.id}}" type="text" ng-model="missioncontent.info" ng-blur="updatemissionpoints(missioncontent.id, missioncontent.info)" class="form-control" style="background-color: #e8e8e8; width: 80%;">
            </div>
        </li>
    </ul>
</div>

<强>的Javascript

$scope.deletemissionpoints = function(index) {
    jsonData.deletePointId.push(missionpointid);

    $scope.mission.missioncontent.splice(index, 1);
    // Delete from the array
};

答案 1 :(得分:0)

正如@Tushar所回答的那样,您需要将代码包装到DOM ready事件中。

你可以尝试一下!

$(document).ready(function() {
    $("#mission-"+missionid+"").find("li #"+missionpointid+"").remove();

    $("#mission-"+missionid+"").find("#"+missionpointid+"").find("img").remove();
});

请参阅我的jsFiddle - http://jsfiddle.net/ks6mo5ex/

或试试这个 - http://jsfiddle.net/ks6mo5ex/1

答案 2 :(得分:0)

你需要删除 [self performSelector:@selector(presentController) withObject:self afterDelay:1.0]; ,这是DOM完成加载时触发的DOM的事件处理程序,在DOM已经加载的方法中,因此事件将不会执行。

试试这个

document.ready