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

发布于 2024-10-24 04:30:32 字数 891 浏览 3 评论 0原文

我正在使用 插件 来创建一个真正光滑的 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 解决方案来将其插入到第一个选择元素之前: 我还需要 jquery 为下一个选择项分配一个选项值(请参见上面的标记)。所以基本上,我需要一个 jquery 解决方案来将该行附加到第一个选择项之前,并为下一个选择项分配一个连续的选项值 (i++)。

预先感谢,我希望这是有道理的。

I am using a plugin to create a real slick jquery select (dropdown) menu.

The html requires the following format:

<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>

I want to use wordpress to display certain pages in a select menu:

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

Wordpress successfully returns a select menu of all of the correct pages. I need a jquery solution to insert this before the first select element: <option value="0" selected="selected" data-skip="1">Choose an Artist</option> and I also need jquery to assign an option value to the next select item (see markup above). So basically, I need a jquery solution to append that line before the first select item and also assign a consecutive option value (i++) to the next select item.

Thanks in advance, and I hope that makes sense.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

離殇 2024-10-31 04:30:32

您需要将新列表选项添加到您的选择中,然后循环遍历选项并插入值属性每次函数循环时都会增加的数字。

    $("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

You need to prepend your new list option to your select and then loop over the options and insert value attribute with a number that increases each time the function loops.

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

Fiddle: jsfiddle.net/67de7/1

甜中书 2024-10-31 04:30:32

只要您可以唯一地标识您的选择字段(例如 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);
});

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

As long as you can uniquely identify your select field (e.g. id or class name) something like this should do what you want:

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);
});

Basically the last loop sets the value of each option of the select field to it's index.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文