Javascript jQuery选择元素,然后一起下一步
我有一个自动生成的HTML,我想把元素组合在一起 输入Html:Javascript jQuery选择元素,然后一起下一步,javascript,jquery,html,Javascript,Jquery,Html,我有一个自动生成的HTML,我想把元素组合在一起 输入Html: <div class="editor-label"><label for="StringField">StringField</label></div> <div class="editor-field"><input id="StringField" type="text" value="" /></div> <div class="ed
<div class="editor-label"><label for="StringField">StringField</label></div>
<div class="editor-field"><input id="StringField" type="text" value="" /></div>
<div class="editor-label"><label for="IntField">IntField</label></div>
<div class="editor-field"><input id="IntField" name="IntField" type="number" value="0" /></div>
<!-- more like above -->
我可以使用什么选择器来选择元素(.editor label
)及其下一个(.editor field
)作为一个“元素”?试试这个
$('.editor-label').each(function(){
var group = $(this).next().addBack().wrapAll('<div class="form-group"></div>');
});
$('.editor标签')。每个(函数(){
var group=$(this.next().addBack().wrapAll(“”);
});
您可以使用jQuery同级
方法:
$(".editor-label").siblings(".editor-label")
使用.each()
、.addBack()
和.wrapAll()
$('.editor-label').each(function(){
$(this).next(".editor-field").addBack().wrapAll("<div class='form-group'/>");
});
$('.editor标签')。每个(函数(){
$(this).next(“.editor字段”).addBack().wrapAll(“”);
});
.each()
将以回调中的所有所需元素为目标,找到.next(.editor字段”)
,添加回起始选择器(当前.editor标签
)和wrapAll()
在所需的元素中您需要在for each中进行选择,而不是单独使用选择器
$(“.editor标签”)。每个(函数(){
var lab=$(本);
var inp=$(lab.next();
实验室添加(inp).wrapAll(“”);
});代码>
.wrapper{border:2px纯黑色;}
斯特林菲尔德
因特菲尔德
看看这是否可行
var fields = $('.editor-field');
$.each(fields, function(index, obj){
var field = $(obj);
var label = field.prev('.editor-label');
field.wrap('<div class='form-group'></div>').before(label);
});
var字段=$('.editor字段');
$.each(字段、函数(索引、对象){
变量字段=$(obj);
var label=field.prev('.editor label');
字段。包装(“”)。在(标签)之前;
});
andSelf是deprecated@AmitJoki我知道我只是从我的第一个jsbin复制代码。这将选择所有兄弟姐妹
$('.editor-label').each(function(){
$(this).next(".editor-field").addBack().wrapAll("<div class='form-group'/>");
});
var fields = $('.editor-field');
$.each(fields, function(index, obj){
var field = $(obj);
var label = field.prev('.editor-label');
field.wrap('<div class='form-group'></div>').before(label);
});