首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jQuery集合在每个循环中都会中断(删除elem,恢复innerHTML)

jQuery集合在每个循环中都会中断(删除elem,恢复innerHTML)
EN

Stack Overflow用户
提问于 2018-06-02 01:18:30
回答 4查看 54关注 0票数 0

我希望下面的代码能够遍历select options并移除具有某个值的选项,否则将恢复select html

代码语言:javascript
复制
var initialHTML = $('#myselect').html();

$('#myselect option').each(function(){
    if($(this).val() === 'b'){
        $(this).remove();
        console.log('matching. removed.');
        return false;
    }else{
        $('#myselect').html(initialHTML);
        console.log('not matching. html restored.');
    }
});

预期的select为:

代码语言:javascript
复制
<select id="myselect">
    <option value="a">a</option>
    <option value="c">c</option>
</select>

但它实际上是

代码语言:javascript
复制
<select id="myselect">
    <option value="a">a</option>
    <option value="b">b</option>
    <option value="c">c</option>
</select>

我做错了什么?FIDDLE

更新,例如,有人建议:

$('#myselect option')构造一个选项列表,$(this).remove()删除选项b,但选项列表不再链接到该超文本标记语言,因为超文本标记语言已经被为选项a执行的$('#myselect').html(initialHTML)更改

所以,我已经意识到,实际问题甚至与我最初在问题中提出的问题无关。很抱歉,我会试着把它放在正确的部分。

附注:a working solution

代码语言:javascript
复制
var initialHTML = $('#myselect').html();

function doIt(){
    $('#myselect').html(initialHTML);

    $('#myselect option').each(function(){
        if($(this).val() === 'b'){
            $(this).remove();
        }
    });
}

非常感谢你的帮助。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50648285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档