有人可以告诉我这里我做错了什么:
function onAjaxDone(data) {
var topicID;
$('#TopicID')
.html(data);
topicID = store.getItem('TopicID');
if (topicID) {
$("#TopicID")
.val(topicID);
$('option[value="88"]', this).remove();
$('option[value="99"]', this).remove();
}
}
我收到错误说“严格失败”并指向带有“this”的行。我想要做的是删除id为TopicID的select元素的值为88和99的选项行。我编码错了吗?这是给我的一个例子,但我不确定为什么这两行都有“这个”。
答案 0 :(得分:0)
这应该这样做:
function onAjaxDone(data) {
var topicID, selTopic;
selTopic = $('#TopicID');
selTopic.html(data);
topicID = store.getItem('TopicID');
if (topicID) {
selTopic.val(topicID);
$('option[value="88"]', selTopic).remove();
$('option[value="99"]', selTopic).remove();
//or
//selTopic.val(topicID)
//.find('option[value="88"]').remove().end()
//.find('option[value="99"]').remove();
}
}
答案 1 :(得分:0)
这取自jQuery文档
jQuery( selector [, context] )
selector: A string containing a selector expression
context: A DOM Element, Document, or jQuery to use as context
这意味着您使用的 this 应该指向其中一个子元素是两个选项的DOM元素,但显然它不是。
您应该将其更改为
$('option[value="88"]', el).remove();
$('option[value="99"]', el).remove();
其中 el 是
的形式或选择或任何父元素<option value='88'></option>
<option value='89'></option>
或者,如果您确定在整个网页中只有 两个选项,那么您可以这样做
$('option[value="88"]').remove();
$('option[value="99"]').remove();
答案 2 :(得分:0)
$("#TopicID option[value='88']").remove();
$("#TopicID option[value='89']").remove();