javascript - 为什么我的 map 函数另外添加 2 个空的 'li' ?

标签 javascript jquery html

我在文本输入上附加一个下拉菜单,我的性别是男性,女性,我只是在它获得焦点时将其添加到我的 li 中。但我的焦点上另外出现了 2 个空的 li。为什么?

这是我的代码:

$(document).ready(function(){

  var  gender = ['Female','Male'],
      genderField = $('#gender');

   var genderUpdate= function(){
            genderField.focus(function(){
                if(!$('#genderList').length){
                    var topPos = $(this).position().top,lftPos = $(this).position().left;
                    $('<ul id="genderList"></ul>').css({
                        position    :'absolute',
                        top         : topPos,
                        left        : lftPos
                    }).appendTo($(this).parent());


                    $.map(gender,function(val,i){
                        $('<li>'+val+'<li>').appendTo('#genderList');
                        console.log('append');
                    })

                }


            })
        }

                        genderUpdate();

})

这是 fiddle :

visit the fiddle

这里出了什么问题?

最佳答案

找出差异;=)

$('<li>'+val+'<li>').appendTo('#genderList');

$('<li>'+val+'</li>').appendTo('#genderList');

浏览器“很好”,会自动关闭未关闭的 li 标签,循环的每次迭代都会关闭两个标签。

关于javascript - 为什么我的 map 函数另外添加 2 个空的 'li' ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10785739/

相关文章:

javascript - 字符串编码问题

javascript - 如何根据选择值动态更改 'onChange' 属性值?

javascript - 你如何让侧边栏填满空间?

javascript - 检查文本区域是否为空

javascript - AngularJS : ng-repeat for plain text

javascript - Google phpsqlajax v3 无法正常工作...仅标记未显示在 map 上

javascript - 如何自定义 jQuery 密码强度指示器位置

javascript - 克隆 jquery 输入文件未清除

javascript - 如何使用 jquery 将项目从一个列表移动到多个其他列表?

html - CSS 根据屏幕大小更改内容