Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么不';我的子节点不是被清空了吗?_Javascript_Jquery_Html - Fatal编程技术网

Javascript 为什么不';我的子节点不是被清空了吗?

Javascript 为什么不';我的子节点不是被清空了吗?,javascript,jquery,html,Javascript,Jquery,Html,我有这样一个代码,它过滤输入并在弹出窗口中以按钮的形式显示,但是每次keyup事件发生时,搜索应该清空列表并附加新列表;相反,它只是继续附加到列表中 我尝试过使用empty(),但它没有清空。 我甚至试过html()和html(“”),但没有成功 我的html: <div class="related-widget-wrapper"> <select id="id_user" name="user" required=""> <option

我有这样一个代码,它过滤输入并在弹出窗口中以按钮的形式显示,但是每次
keyup
事件发生时,搜索应该清空列表并附加新列表;相反,它只是继续附加到列表中

我尝试过使用
empty()
,但它没有清空。 我甚至试过
html()
html(“”)
,但没有成功

我的html:

<div class="related-widget-wrapper">
    <select id="id_user" name="user" required="">
        <option value="" selected="selected">---------</option>
        <option value="3">abc</option>
        <option value="1">admin</option>
        <option value="2">hello</option>
    </select>
</div>

---------
abc
管理
你好
我的js:

var filterInput = '<input type="text" id="customFilter" placeholder="Filter" />';
var filterPopUp = '<div class="filterPop" style="border: 1px solid #000; min-height: 100px; min-width: 200px; display: none; position: fixed; left: 50%; top: 50%;"></div>';
var newList = "";
$("#id_user")
    .closest(".related-widget-wrapper")
    .append(filterInput, filterPopUp);

$("#customFilter").on("keyup", function() {
    $(".filterPop").empty();
    var input = $(this).val();
    $(".filterPop").show();

    $.each($("#id_user option"), function() {
        var index = $(this).val();
        var val = $(this).text();
        if (val.toLowerCase().indexOf(input) >= 0) {
            newList += '<p class="lists"><button class="filteredList" data-filteredID="' + index + ' value="' + val + '">' + val + "</button></p>";
        }
    });

    $(".filterPop").append(newList);
});
var filterInput='';
变量filterPopUp='';
var newList=“”;
$(“id用户”)
.closest(“.related widget wrapper”)
.附加(filterInput、filterPopUp);
$(#customFilter”)。在(“keyup”,function()上{
$(“.filterPop”).empty();
var输入=$(this.val();
$(“.filterPop”).show();
$.each($(“#id_用户选项”),函数(){
var index=$(this.val();
var val=$(this.text();
如果(val.toLowerCase().indexOf(输入)>=0){
newList+='

而不是$('#customFilter')。在(…)上尝试$(filterInput)。在(…)上


当元素在文档中没有父元素时,jquery将找不到它。

您在
keyup
上连接到
newList
。您需要在
keyup
上清空
newList
,然后在
$循环中连接。each()
循环

var filterInput='';
变量filterPopUp='';
$('id_user')。最近('related widget wrapper')。追加(filterInput,filterPopUp);
$('#customFilter')。在('keyup',function()上{
$('.filterPop').empty();
var输入=$(this.val();
$('.filterPop').show();
var newList='';
$。每个($('#id_用户选项'),函数(){
var index=$(this.val();
var val=$(this.text();
如果(val.toLowerCase().indexOf(输入)>=0){

newList+='

我犯的又一个愚蠢的错误,我想清空html,却忘了清空变量too@Tsuna哈哈,一切都很好,有时候你需要的只是一双新的眼睛。