.each(从html元素生成下拉列表,替换元素)
.each (generate dropdown from html element, replace element)
我需要一些帮助。我在div中有一些数据。我设法从每个div中提取数据,并从中创建下拉列表。现在,某些元素(示例中的class.change)应该被那些下拉列表所取代,我陷入了每个函数的困境。如何解决?
// convert data from div to dropdown
$('.wrap').each(function () {
var $select = $('<select />');
$(this).find('.answer').each(function () {
var $option = $('<option />');
$option.attr('value', $(this).next().html()).html($(this).html());
$select.append($option);
});
$(this).replaceWith($select);
// replace .change with dropdown
$(".change").each(function () {
$(this).replaceWith($select);
});
});
http://jsfiddle.net/shinzon/jgj6whmx/
问题是您试图用为每个.wrap
创建的下拉列表填充每个.change
,而您只想更改行中的下一个。
// convert data from div to dropdown
$('.wrap').each(function () {
var $select = $('<select />');
$(this).find('.answer').each(function () {
var $option = $('<option />');
$option.attr('value', $(this).next().html()).html($(this).html());
$select.append($option);
});
// remove old unneeded div
$(this).remove();
// replace first .change with dropdown
$(".change:first").replaceWith($select);
});
Fiddle:http://jsfiddle.net/jgj6whmx/5/
相关文章:
- 如何在按钮中显示下拉列表中选定的元素
- 使用Razor和javascript来获得下拉列表元素
- 将onclick事件附加到具有一个元素的下拉列表中
- 保持元素处于禁用状态,直到未在 Angularjs 中选择下拉列表
- 根据下拉列表中选择的项目隐藏所有元素
- 将同一个元素追加到两个下拉列表中只会导致最后一个元素被追加
- 如何在输入框中只显示名称,而在选择元素的下拉列表中显示名称和数字
- 如何使下拉列表展开单击按钮元素
- 根据下拉列表中选择的内容隐藏和显示 HTML 元素
- 下拉列表使元素移动
- 选择其他字段元素时如何重置选择选项下拉列表
- 未在选择标记下拉列表中选择以隐藏其他输入元素的嵌套控制器
- 单击其他元素(文本输入)时显示下拉列表
- 剑道UI [下拉列表] - 多个元素中的冲突
- 如何使用 HTML 中的下拉列表更改元素
- JavaScript - 如何检测选择元素上的编程值更改(下拉列表)
- 隐藏“选择”下拉列表的元素
- jQuery 下拉列表 将鼠标悬停在两个不同的元素上
- 在选择框(下拉列表)中检查元素 ID 值
- JqueryUI 工具提示可防止<选择>元素下拉列表在 IE 11 中保持关闭