javascript - 在另一个元素之前添加元素

标签 javascript jquery

我有一个可以动态添加输入字段的应用程序。但是我的按钮仍保留在原位,并且我在其下方创建了 2 个输入字段。

我想尝试并实现的是:当我添加输入字段时,我希望按钮位于输入字段下方。

这是创建按钮的函数。

function getAddBtn(target, i){
 var addBtn = $('<a/>', {
                'class': 'btn btn-primary',
                'id': 'addBtn'
            }).on('click', function(){
 if($('.syllable',target).length>3)
      return false;
 $(target).append(getWordPartInput(i));
}).html('<i class="fa fa-plus"></i>');
            console.log(target);
 return addBtn;
}

这是创建输入字段的函数:

function getWordPartInput(id, cValue){
 cValue = cValue || '';
 var wpInput = $('<input/>', {
'class': 'form-group form-control syllable',
'type': 'text',
'value': cValue,
'placeholder': 'Syllables',
'name': 'Syllablescounter['+ SyllablesID++ +']'
 });
  return wpInput;
}

https://jsfiddle.net/StackOverflowAccount/sa2eowhh/21/一个 fiddle 让你自己尝试一下,看看我的意思。单击绿色的添加按钮,然后您会看到 2 个按钮,一个 + 按钮和一个 - 按钮。单击蓝色按钮,您可以看到输入字段如何在按钮下方跳转,而不是在按钮之间添加。我试图将输入字段保持在彼此下方,而不是在它们之间放置按钮。

提前致谢。

最佳答案

只需替换方法 getAddBtn 中的行即可完成。

$(target).append(getWordPartInput(i)); 替换为 $(getWordPartInput(i)).insertBefore($(target).find("#addBtn") .prev());

有关更多信息,请参阅 insertBefore in jQuery

编辑:Updated Fiddle

关于javascript - 在另一个元素之前添加元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51018189/

相关文章:

javascript - JQuery溢出其他子元素时如何显示子元素

javascript - jqgrid + MVC : How to open a dialog inside jqgrid? 你建议使用哪种方法打开对话框?

jquery - 为什么 $.support.cors 在 IE 11 中为 false?

javascript - 创建用户时不断获取 null

javascript - Node.js - 使用 JSON 对象作为变量

javascript - 更改响应式侧边菜单的位置

javascript - 这段 JavaScript 代码安全吗?

php - 在 php 中检索 window.location.hash url

javascript - $.getJSON 命中失败但返回文本

javascript - $.get 不是函数