0

我有以下内容:

$('.select-topic').click(function () {
    if ($(this).attr('data-list') == "N") {
        $(this).attr('data-list', 'Y')
        var topicSelectHtml = $('#TopicID').html();
        $(this).html(topicSelectHtml);
        $(this).attr('data-clicked', 'Y')
    } 

当用户点击一个新主题时,它会将$('#TopicID').html();并用作 html 的topicSelectHtml.

这可行,但我需要做的是删除$('#TopicID').html();新选择不需要的部分。这是我选择的html:

<select name="TopicID" id="TopicID"><optgroup label="Admin">
<option value="00">All Topics</option>
<option value="050002">Classes</option>
</optgroup>
xxxxxxxxx</select>

如何删除该<optgroup label="Admin"> ... </optgroup>部分?请注意,我的 html 中没有换行符。

4

2 回答 2

1
var topicSelectHtml = $('#TopicID').clone().find("optgroup:first").remove().end().html();
于 2012-07-25T08:59:02.577 回答
0

将 id 添加到每个 optgroup,然后使用 remove() 函数。

请参阅此处的示例 - http://jsfiddle.net/ue2KJ/

如果你愿意,你可以避免给元素添加 id,但是如果你有不止一种类型的相同元素,那么它可能会导致问题。

要删除第一个元素,只需使用 -

$(this).children("optgroup:first").remove();
于 2012-07-25T08:59:39.843 回答