JQUERY - 不显示HTML select元素

时间:2016-10-20 10:48:30

标签: javascript jquery html

$(document).ready()(function(){
    var selArr = [
        {val: 'corsair', text: 'Corsair'},
        {val: 'evga', text: 'EVGA'},
        {val: 'antec', text: 'Antec'}
    ];

    $('#pSupply').append('<select id="psuSel" />').promise().done(function(){
    $(selArr).each(function(){
        $('#psuSel').append($('<option />').attr('value', this.val).text(this.text));
    });
  });
});

上面的代码是我试图用于一种动态生成的带选项的选项。遗憾的是,这根本不显示选择菜单。

2 个答案:

答案 0 :(得分:1)

您根本没有绑定文档就绪事件,也没有调用您的函数,因为您已经写过:

$(document).ready()( ... );
                 ^^

然后单独调用$(document).ready()函数,声明一个用括号括起来的函数,从不执行它,也不将它传递给执行它的东西。它肯定没有传递给ready()函数。如果您在功能开头添加console.log("function's running");语句,我就会下注,您永远不会在控制台中看到该消息。

尝试删除()

$(document).ready( ... );

注意:使用空白参数isn't a valid use of that function调用.ready()

答案 1 :(得分:-1)

您的代码中存在错误 这个

;WITH CTE AS(

   SELECT *, ROW_NUMBER() OVER (PARTITION BY ID ORDER BY ID) RN
   FROM TableName
)   
SELECT ID,
       MIN(CASE WHEN RN=1 THEN [value] END) NewValue,
       MIN(CASE WHEN RN=2 THEN [value] END) OldValue
FROM CTE    
GROUP BY ID

$(document).ready()是预定义函数,一旦页面准备好内容就会调用,所以如果用户想在页面加载后执行某些代码,用户必须通过将函数作为参数传递给它来覆盖ready()。