将html附加到没有命名div的元素

时间:2015-10-02 16:28:16

标签: jquery

我无法控制此表单的html,这也不是位于正确命名的div中。所以从我所了解的内容来看,我不知道如何定位我正在寻找的东西。

在这行代码之后,我想插入一个类似的字段

<input class="field" name="email" type="text">  

类似

<input class="field" name="segment" value="website" type="hidden">  

我想某种正则表达式对此有用吗?

3 个答案:

答案 0 :(得分:0)

试试这个

$("input[name=email]").parent().append('<input class="field" name="segment" value="website" type="hidden"/>');

这将定位您的电子邮件输入,转到DOM树中该输入的父元素,然后附加您的隐藏字段。

修改

该示例的

Here is a pretty basic jsfiddle注意示例中,我将附加的输入类型更改为text以演示代码是否正常工作。

答案 1 :(得分:0)

您可以使用 after() 插入元素旁边

&#13;
&#13;
$('[name="email"]').after($('<input/>', {
  class: 'field',
  name: 'segment',
  value: 'website',
  type: 'hidden'
}))
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input class="field" name="email" type="text">
&#13;
&#13;
&#13;

答案 2 :(得分:0)

由于我不确定你的问题是什么,我提到了3个可能的案例:

var input2Append = $('input.field[name=email]');

//this places another input after the email input
$('#add').click(function() {
  input2Append.after('<input class="field" name="segment" value="website">');
});
//this changes the properties of the email input
$('#change').click(function() {
  input2Append.prop({'name':'segment','value':'website'});
});
//this shows/hides the inputs
$('#hide').click(function(){
  $('input').toggle()
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="field" name="email" type="text"><br><button id="add">Add input</button><button id="change">Change input</button><button id="hide">Hide/show inputs</button>

Append在另一个元素中添加一个元素(适用于包含元素)。由于您无法将HTML放在input元素中,就像您在div中所做的那样(即内部内容),因此当您使用append时,您看不到任何结果。

因此,如果您想在选择的输入之后添加其他输入,则应使用after代替。