jquery before()出了问题?

时间:2011-10-10 17:48:12

标签: javascript jquery

我有一个页面,您可以在其中单击“添加关键字”链接,然后会显示输入,您可以输入关键字,然后将其转换为模糊或“返回”键上的span标记。但是,我一直在添加它以允许“自动完成”功能,所以我试图插入

<ul></ul> 
输入后输入

以便在列表中执行.load。

我的相关代码是:

var addKeywordId = 0;
$('a.add_keyword').live('click', function(){
    $(this).before('<input type="text" class="add_keyword" id="addKeyword'+addKeywordId+'" /><ul><li>hi</li></ul>');
    $('.add_keyword').focus();
    addKeywordId++;
});

问题是,我的HTML结构最终看起来像这样:

<ul><li>hi</li></ul>
<a class="add_keyword">+ add keyword</a>
<input id="addKeyword0" class="add_keyword" type="text />

INSTEAD OF

<input id="addKeyword0" class="add_keyword" type="text />
<ul><li>hi</li></ul>
<a class="add_keyword">+ add keyword</a>

有人知道为什么我的HTML是按照我指定的顺序添加的吗?

由于

编辑:这似乎在谷歌Chrome中运行良好,但在Mozilla Firefox中却没有。:(

1 个答案:

答案 0 :(得分:0)

这很可能是由于Firefox的错误重新调整,即使出现错误也会尝试显示内容。我已经看到它在哪里我错过了一个结束div,IE吓坏了(因为它应该)和Firefox看起来很好,因为它忽略了你错过了添加结束div和​​猜测。

你可以试试2阶段的事情。我会在ul标签中添加一个id,然后在它之前添加输入。

$(this).before('<ul id="ulid"><li>hi</li></ul>');
$('#ulid').before('<input type="text" class="add_keyword" id="addKeyword'+addKeywordId+'" />');

哈欣快乐。

_wryteowl