使用jquery为动态创建的选择菜单添加值

时间:2011-03-18 20:58:49

标签: jquery wordpress loops dynamic

我正在使用plugin来创建一个真正光滑的jquery select(下拉菜单)菜单。

html需要以下格式:

<select>
<option value="0" selected="selected" data-skip="1">Choose an Artist</option>
<option value="1">Title</option>
<option value="2">Title</option>
<option value="3">Title</option>
<option value="4">Title</option>
</select>

我想使用wordpress在选择菜单中显示某些页面:

<?php wp_dropdown_pages('child_of=96'); ?>

Wordpress成功返回所有正确页面的选择菜单。我需要一个jquery解决方案来在第一个select元素之前插入它:<option value="0" selected="selected" data-skip="1">Choose an Artist</option>我还需要jquery为下一个select项分配一个选项值(参见上面的标记)。基本上,我需要一个jquery解决方案,在第一个选择项之前附加该行,并为下一个选择项分配一个连续的选项值(i ++)。

提前致谢,我希望这是有道理的。

2 个答案:

答案 0 :(得分:0)

只要你可以唯一地标识你的选择字段(例如id或类名),这样的事情应该做你想要的:

var select = $('select'); // Or according selector
select.prepend('<option value="0" selected="selected" data-skip="1">Choose an Artist</option>');
$('option', select).each(function(index) {
    $(this).attr('value', index);
});

基本上,最后一个循环将select字段的每个选项的值设置为它的索引。

答案 1 :(得分:0)

您需要prepend select的新列表选项,然后遍历options并插入value属性,其中的数字会在每次函数循环时增加

    $("select").prepend("<option selected='selected' data-skip='1'>Choose an Artist</option>'");
       var i = 1;
    $("select option").each(function() {
       $(this).attr("value",i);
       i++;
     });

小提琴:jsfiddle.net/67de7/1