我无法控制此表单的html,这也不是位于正确命名的div中。所以从我所了解的内容来看,我不知道如何定位我正在寻找的东西。
在这行代码之后,我想插入一个类似的字段
<input class="field" name="email" type="text">
类似
<input class="field" name="segment" value="website" type="hidden">
我想某种正则表达式对此有用吗?
答案 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()
插入元素旁边
$('[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;
答案 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代替。