无法调用null的方法'append'

时间:2012-03-08 09:45:41

标签: jquery html

使用jQuery 1.6.0问题时遇到了这个奇怪的问题。我试图将一些内容附加到div,如果用户在文本框中键入了超过3个字符。

这是我的JS

$('#Form_pickForm_Name').keyup(function() {
  var searched = $('Form_pickForm_Name').value;
  if (searched.length > 2) {
    // Add the name_suggestions if doesn't exit
    if ($("name_suggestions").length < 1){
        $('#Name').append("<div id='name_suggestions'>Foo!</div>");
    }
  }
});

这是相关的HTML

<div id="Name" class="field text ">
    <label class="left" for="Form_pickForm_Name">Your Full Name</label>
    <div class="middleColumn">
        <input type="text" class="text" id="Form_pickForm_Name" name="Name" value="" />
    </div>
</div>

我已检查过该页面,并且其上没有其他id =“名称”。

如果我alert($('#Name'));我得到null,但如果我alert($('Name'))我得到[对象HTMLDivElement]但它仍然不会让我追加。

使用jQuery 1.6.0

2 个答案:

答案 0 :(得分:1)

我已经切换到使用appendTo,我认为你需要$对象来创建一个元素。

此外,还有一些语法错误(缺少两个ID的散列)

$('#Form_pickForm_Name').keyup(function() {
  var searched = $('#Form_pickForm_Name').value;
  if (searched.length > 2) {
    // Add the name_suggestions if doesn't exit
    if ($("#name_suggestions").length < 1){
        $("<div id='name_suggestions'>Foo!</div>").appendTo("#Name");

    }
  }
});

答案 1 :(得分:1)

你有语法错误,试试这个方法(没有#的选择器)...请使用val()方法代替值:

$('#Form_pickForm_Name').keyup(function() {
  var searched = $('#Form_pickForm_Name').val();
  if (searched.length > 2) {
    // Add the name_suggestions if doesn't exit
    if ($("#name_suggestions").length < 1){
    $('#Name').append("<div id='name_suggestions'>Foo!</div>");
    }
  }
});