Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.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 是什么导致empty()和append()不起作用?_Javascript_Jquery_Asp.net Core - Fatal编程技术网

Javascript 是什么导致empty()和append()不起作用?

Javascript 是什么导致empty()和append()不起作用?,javascript,jquery,asp.net-core,Javascript,Jquery,Asp.net Core,下面的代码段应首先删除SubCategoryListdiv中的所有元素。在此之后,它应该以开头,以结尾 $list.empty(); $list.append('<ul class="list-group">'); // others $list.append('</ul>'); $list.empty(); $list.append(“”); //其他 $list.append(“”); 然而,它并没有像预期的那样工作。它不清洁,也不会夹住儿童 <select

下面的代码段应首先删除
SubCategoryList
div中的所有元素。在此之后,它应该以
开头,以
结尾

$list.empty();
$list.append('<ul class="list-group">');
// others
$list.append('</ul>');
$list.empty();
$list.append(“
    ”); //其他 $list.append(“
”);
然而,它并没有像预期的那样工作。它不清洁,也不会夹住
  • 儿童

    <select id="ddlCategories" size="4"
            asp-for="SubCategory.CategoryId"
            asp-items="Model.Categories.ToSelectListItem()"
            class="form-control">
        <option value="">--Please Select--</option>
    </select>
    
    
    --请选择--
    

    现有子类别:

      函数updateSubCategoryList(){
      var categorySelected=document.getElementById(“DDLCegories”).value;
      $list=$(“#子类别列表”);
      $.ajax({
      url:“/Admin/SubCategory/GetSubCategory/”+已选择类别,
      键入:“GET”,
      数据类型:“文本”,
      成功:功能(数据){
      results=JSON.parse(数据);
      //$list.html(“”);
      $list.empty();
      $list.append(“
        ”); 对于(我在结果中){ $list.append('
      • '+结果[i].text+'
      • '); } $list.append(“
      ”); } }); }
      您的代码存在的问题是,您不能单独附加开始标记和结束标记;必须完整地创建元素

      有几种方法可以解决这个问题。首先,您可以在jQuery对象中创建
      ul
      ,然后
      append()
      li

      success: function (data) {
        results = JSON.parse(data);
        $list.empty();
      
        var $ul = $('<ul class="list-group">').appendTo($list);
        for (i in results) {
          $ul.append('<li class="list-group-item">' + results[i].text + '</li>');
        }
      }
      

      还请注意,如果将
      数据类型:“text”
      更改为
      数据类型:“json”
      ,则可以取消
      json.parse()
      调用。

      代码的问题在于无法单独附加开始和结束标记;必须完整地创建元素

      有几种方法可以解决这个问题。首先,您可以在jQuery对象中创建
      ul
      ,然后
      append()
      li

      success: function (data) {
        results = JSON.parse(data);
        $list.empty();
      
        var $ul = $('<ul class="list-group">').appendTo($list);
        for (i in results) {
          $ul.append('<li class="list-group-item">' + results[i].text + '</li>');
        }
      }
      

      还请注意,如果将
      数据类型:“text”
      更改为
      数据类型:“json”
      ,则可以取消
      json.parse()
      调用。

      在第一个版本中,不需要关闭
      ?@MoneyOrientedProgrammer None;jQuery就是这样工作的,没错。jQuery在创建元素时为您插入它。如果愿意,您可以自己添加
      $(“
        ”)
      $(“
        ”)
        $(“
          ”)
        都将完成相同的工作;在jQuery对象中创建一个
        ul
        元素。@DaveNewton:谢谢。这是非常违反直觉的。:-)在第一个版本中,没有结账
        ?@MoneyOrientedProgrammer无需结账;jQuery就是这样工作的,没错。jQuery在创建元素时为您插入它。如果愿意,您可以自己添加
        $(“
          ”)
        $(“
          ”)
          $(“
            ”)
          都将完成相同的工作;在jQuery对象中创建一个
          ul
          元素。@DaveNewton:谢谢。这是非常违反直觉的。:-)
          success: function (data) {
            results = JSON.parse(data);
            $list.empty();
          
            var $ul = $('<ul class="list-group">').appendTo($list);
            for (i in results) {
              $ul.append('<li class="list-group-item">' + results[i].text + '</li>');
            }
          }
          
          success: function (data) {
            results = JSON.parse(data);
            var li = results.map(function(obj) {
              return '<li class="list-group-item">' + obj.text + '</li>';
            })
            $list.html('<ul class="list-group">' + li + '</ul>');
          }