使用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
答案 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>");
}
}
});