我想开发我的简单自动完成功能,我对JQuery自动完成插件不感兴趣。
我只想在输入文本下面添加一个潜水,这段代码假设可以正常工作,我做错了什么?实现这个目标的方法是什么?
如果你不想打开小提琴,这是代码:$("#txtSearch").keypress(function (e) {
if ($("#txtSearch").val().length >= 2) {
var pos = $("#txtSearch").position();
$('<div />', {
'html': "xxxxxxxxx xx x"
}).css({
top: pos.top,
left: pos.left,
width: '300px',
position: 'absolute',
'background-color': 'Yellow'
}).appendTo($("#txtSearch"));
}
});
答案 0 :(得分:6)
尝试以下代码,
$("#txtSearch").keypress(function (e) {
if ($("#txtSearch").val().length >= 2) {
var pos = $("#txtSearch").position();
$('<div />')
.html("xxxxxxxxx xx x")
.css({
top: pos.top + $("#txtSearch").height() + 1,
left: pos.left,
width: '300px',
position: 'absolute',
'background-color': 'Yellow'
}).insertAfter($("#txtSearch"));
}
});
答案 1 :(得分:2)
您无法附加到(.appendTo
)空内容模型元素。请改用.insertAfter
(或.insertBefore
)。您可能还希望top
至少添加到输入的高度。
答案 2 :(得分:0)
$("#txtSearch").keypress(function (e)
{
if ($("#txtSearch").val().length >= 2)
{
$('#txtSearch').after('<div id="someID">');
$('#someID').html('xxxxxxx xx x')
.css({
top: pos.top,
left: pos.left,
width: '300px',
position: 'absolute',
'background-color': 'Yellow'
})
.appendTo($("#txtSearch"));
}
});