我正在使用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}}
答案 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