如何在输入文本下面添加div?

时间:2013-02-13 20:29:18

标签: javascript jquery html

我想开发我的简单自动完成功能,我对JQuery自动完成插件不感兴趣。

我只想在输入文本下面添加一个潜水,这段代码假设可以正常工作,我做错了什么?实现这个目标的方法是什么?

JSFiddle

如果你不想打开小提琴,这是代码:

$("#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"));
    }
});

3 个答案:

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

DEMO: http://jsfiddle.net/uZF5g/1/

答案 1 :(得分:2)

您无法附加到(.appendTo)空内容模型元素。请改用.insertAfter(或.insertBefore)。您可能还希望top至少添加到输入的高度。

http://jsfiddle.net/uZF5g/3/

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