如何使用 Jquery/Javascript 在嵌套元素前面置置
how to prepend nested elements using Jquery/Javascript?
只是想知道是否有比这更好的方法:
var $lftWrp = $( document.createElement( "div" ) ),
$ctrlGrp = $( document.createElement( "div" ) ),
.attr({'data-role':'controlgroup', 'data-type':'horizontal'})
.controlgroup(),
$buttons = $('.someButtons');
$(this).prepend( $lftWrp.prepend( $ctrlGrp.prepend( $buttons ) ) )
要获得这样的东西:
<div>
<div data-role="controlgroup" data-type="horizontal">
<a href="#" class="someButtons">Click</a>
<a href="#" class="someButtons">Click</a>
</div>
</div>
具体来说,有没有比"嵌套"prepends()更好的方法?
感谢您的帮助!
编辑:前置如下所示。具体来说,我的问题似乎是按钮仅在最后一次迭代中添加。所有其他元素都获取div 和控制组。最后一个元素获取div、控件组和按钮。没有关于为什么的线索...
$('.fiveElemnts').each(function() {
var $lftWrp = $( document.createElement( "div" ) ),
$ctrlGrp = $( document.createElement( "div" ) ),
.attr({'data-role':'controlgroup', 'data-type':'horizontal'})
.controlgroup(),
$buttons = $('.someButtons');
//if I log buttons here, they are there
console.log( $buttons );
$(this).prepend( $lftWrp.prepend( $ctrlGrp.prepend( $buttons ) ) )
});
试试这个:
纯 js/jQuery
.HTML:
<div class="button-container" style="display:none;">
<a href="#" class="someButtons">Click</a>
<a href="#" class="someButtons">Click</a>
</div>
<div class="result">
</div>
.JS:
$.fn.controlgroup = function() {
return this;
};
(function() {
var
$template = $('<div><div></div></div>'),
$buttons = $('.someButtons');
$template
.find('>div')
.attr({'data-role':'controlgroup', 'data-type':'horizontal'})
.controlgroup()
.append($buttons);
$(this).prepend($template);
}).call($('.result'));
例
模板
.HTML
<div class="button-container" style="display:none;">
<a href="#" class="someButtons">Click</a>
<a href="#" class="someButtons">Click</a>
</div>
<div class="template-container" style="display:none;">
<div>
<div data-role="controlgroup" data-type="horizontal"></div>
</div>
</div>
<div class="result">
</div>
.JS
$.fn.controlgroup = function() {
return this;
};
(function() {
var
$template = $('.template-container').find('>div').clone(),
$buttons = $('.someButtons');
$template.find('>div').controlgroup().append($buttons);
$(this).prepend($template);
}).call($('.result'));
例
用于编辑(模板)
.HTML:
<div class="button-container" style="display:none;">
<a href="#" class="someButtons">Click</a>
<a href="#" class="someButtons">Click</a>
</div>
<div class="template-container" style="display:none;">
<div>
<div data-role="controlgroup" data-type="horizontal"></div>
</div>
</div>
<div class="fiveElemnts"></div>
<br />
<div class="fiveElemnts"></div>
<br />
<div class="fiveElemnts"></div>
<br />
<div class="fiveElemnts"></div>
<br />
<div class="fiveElemnts"></div>
.JS:
$.fn.controlgroup = function() {
return this;
};
var
$template = $('.template-container').find('>div'),
$buttons = $('.someButtons');
$('.fiveElemnts').each(function(i, el) {
//template
var
$templateForThisUse = $template.clone();
//example append
/*
var $buttonsForThisUse = $buttons.clone();
$templateForThisUse.find('>div').controlgroup().append($buttonsForThisUse);
*/
//best append - form link control
var $ref = $templateForThisUse.find('>div').controlgroup();
$buttons.clone().each(function(ib, eb) {
$(this)
.bind('click', function(event) {
console.log('fiveElemnts('+i+') -> link ('+ib+')');
})
.appendTo($ref.append(' <spam>link ('+i+'-'+ib+'): </spam>'));
});
$(this).prepend($templateForThisUse);
});
运行示例
相关文章:
- 多个嵌套元素上的jQuery.text('')
- 如何在不丢失格式的情况下连续淡入() 元素文本的每个字符,包括嵌套元素
- 选择嵌套元素
- iframe作为pre元素的嵌套元素
- 使用 javascript 通过 tag->id->element 获取嵌套元素
- Node.js:用作对象嵌套元素名称的变量
- mousemove抓取嵌套元素的XY偏移
- 事件委派模式,在按钮中使用 addEventListener 和嵌套元素
- 导轨和挖空.js绑定嵌套元素而不在fields_for中使用foreach
- jQuery切换动态生成的嵌套元素
- 如何使嵌套元素在可拖动容器中不可拖动
- KNOCKOUTJS 映射嵌套元素不是绑定的
- 在鼠标悬停时更改容器和嵌套元素的内部HTML内容
- 在单击嵌套元素时将类添加到同级
- 量角器根据条件单击嵌套元素,错误 - 在指定的超时内未调用异步回调
- 如何使用 Jquery/Javascript 在嵌套元素前面置置
- 防止嵌套元素触发父元素的事件
- 由于嵌套元素,单击侦听器激发两次
- 使用嵌套元素处理触摸事件
- 换行<td><a>标记,同时避免嵌套元素