将每个选择选项值转换为值列表
transform each select options value to list of values
我有这个:
<table class="variations" cellspacing="0">
<tbody>
<tr>
<td class="label">
<label for="pa_varnish_color">Цвет лака</label>
</td>
<td class="value">
<select id="pa_varnish_color" name="attribute_pa_varnish_color">
<option value="">Выбрать вариант…</option>
<option value="white" class="active">белый</option>
<option value="caluzhnica" class="active">калужница</option>
<option value="oregon" class="active">орегон</option>
</select> </td>
</tr>
<tr>
<td class="label">
<label for="pa_type_of_furniture">Тип дерева</label>
</td>
<td class="value">
<select id="pa_type_of_furniture" name="attribute_pa_type_of_furniture">
<option value="">Выбрать вариант…</option>
<option value="oak" class="active">Дуб</option>
<option value="maple" class="active">Клён</option>
<option value="ash" class="active">Ясень</option>
</select>
</tr>
</tbody>
</table>
使用Jquery,我需要将数据从select转换为ul,如下所示:
<ul class="variation-select">
<li></li>
<li>белый</li>
<li>калужница</li>
<li>орегон</li>
</ul>
<ul class="variation-select">
<li></li>
<li>Дуб</li>
<li>Клён</li>
<li>Ясень</li>
</ul>
我也不能使用select id,因为我不知道select的计数,它可以是123或更多,我也不知道id的名称,因为它是在wordpress面板中生成的。所以我通过jquery尝试了什么:
$(".variations_form .variations select").each(function () {
$j(".summary").append('<ul class=variation-select>' + $j(this).val() + '</ul>');
$(this).children("option").each(function () {
$j(".variation-select").append('<li>' + $j(this).val() + '</li>');
});
});
最后我得到了错误的数据:
<ul class="variation-select">
<li></li>
<li>white</li>
<li>caluzhnica</li>
<li>oregon</li>
<li></li>
<li>oak</li>
<li>maple</li>
<li>ash</li>
</ul>
<ul class="variation-select">
<li></li>
<li>oak</li>
<li>maple</li>
<li>ash</li>
</ul>
有人请帮我了解如何获取每个列表中每个选择的数据。
- 您使用类
variation-select
将<li>
附加到所有<ul>
,而只需要将<li>
添加到新创建的<ul>
- 要获取
<option>
内部文本而不是其值,可以使用.text()
而不是.val()
_
$(".variations_form .variations select").each(function()
{
var newUl = $('<ul class=variation-select>' + $(this).val() + '</ul>');
$(".summary").append(newUl);
$(this).children("option").each(function()
{
newUl.append('<li>' + $(this).text() + '</li>');
});
});
Fiddle。
使用$j(this).text()而不是$j(this).val(),应该没问题。
相关文章:
- 如何使用json将对象列表从java转换为javascript
- AngularJs列表ng单击以选择选项转换
- 用于查询错误转换的角度资源返回列表
- Immutablejs:将列表转换为映射
- 如何转换列表<对象>转换为JsonResult
- 如何将逗号分隔的列表转换为<ul>列表
- 如何将Array转换为<ul><李>以字母为标题的字母列表
- 将数量文本框转换为下拉列表
- 在转换后的 UL 列表中添加选择选项
- 将列表<字符串>转换为客户端 ASP.NET MVC 上的 Json 数组
- 下划线,将对象列表转换为对象值数组
- 正在将无序列表转换为选择..但有一个转折
- 将对象键转换为数组列表
- angularjs $resource将查询资源列表转换为对象数组
- JavaScript将缩进文本转换为HTML列表重复顶层<李>'s为<ul>'s
- Codrops页面转换.如何创建单独的按钮,而不是列表项目的效果
- 将Wooccommerce属性下拉列表转换为可点击文本
- 如何将复选框转换为下拉列表
- 如何使用 JSON 在动态中转换列表视图静态
- 转换C#列表<int[]>使用Razor将其转换为JavaScript