2012-03-08 83 views
0

使用jQuery 1.6.0问题引发了这个奇怪的问题。如果用户在文本框中输入了3个以上的字符,我试图将一些内容附加到div上。无法调用null的方法'append'

这里是我的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'));我得到空,但如果我alert($('Name'))我得到[对象HTMLDivElement],但它仍然不会让我追加。

使用jQuery 1.6.0

+0

因为缺少一些“#”。 – benck 2012-03-08 09:49:23

回答

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>"); 
    } 
    } 
}); 
+0

谢谢,#是问题,但我的关键是val(),因为我正在使用它来测试,并且值将为空,所以我认为这是选择器! – Wizzard 2012-03-08 09:57:04

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"); 

    } 
    } 
}); 
相关问题