2

HTML:

<script src="../../Scripts/notificator.js" type="text/javascript"></script>

<span id="popUpMessageBoard"/>
<button onclick="success('message', 'popUpMessageBoard')">Add</button>
<button onclick="remove('popUpMessageBoard')">Remove</button>

javascript:

success = function (messageToApply, elementIdToApplyMessages) {
    $('#' + elementIdToApplyMessages).append('<strong class="notification" style="color:blue">' + messageToApply + ' </strong>');
};

remove = function (elementId) {
    $('#' + elementId).remove('.notification');
}

Add button元素附加到popUpMessageBoard span element. 单击删除按钮时,我希望.notification class从父 span 元素中删除所有带有 的元素。我错过了什么?

4

3 回答 3

6

.remove()方法将删除匹配集中的元素。当您将选择器传递给它时,它只会过滤匹配的集合。在您的情况下,此过滤将为您留下一组空元素,并且不会删除任何内容。

您需要删除匹配集中元素的后代。您可以使用.find()(或可用的众多其他方法之一)来获取这些后代:

$('#' + elementId).find('.notification').remove();
于 2012-12-07T12:38:18.567 回答
1

你必须像这样改变你的css选择器

remove = function (elementId) {
    $('#' + elementId).children('.notification').remove();
}
于 2012-12-07T12:38:09.477 回答
1
$('#' + elementId + ' > .notification').remove();
于 2012-12-07T12:39:25.127 回答