0

我目前有以下选择列表:

<select name="input_3" id="input_2_3" class="medium gfield_select" tabindex="3">
    <option value=" ">-- Select an Image --</option>
    <option value="mysite.com/wp-content/uploads/2013/11/wedding_3.jpg">wedding 3</option>
    <option value="mysite.com/wp-content/uploads/2013/11/wedding_2.jpg">wedding 2</option>
    <option value="mysite.com/wp-content/uploads/2013/11/wedding_1.jpg">wedding 1</option>
</select>

将此当前选择/下拉列表与 jQuery 一起使用,我如何在 document.ready 函数中转置此选择列表,以代替<select>...</select>标签之间的所有内容,如下所示:

<select name="input_3" id="input_2_3" class="medium gfield_select" tabindex="3">
    <option value=" ">-- Select an Image --</option>
    <option value="wedding 3" title="mysite.com/wp-content/uploads/2013/11/wedding_3.jpg">wedding 3</option>
    <option value="wedding 2" title="mysite.com/wp-content/uploads/2013/11/wedding_2.jpg">wedding 2</option>
    <option value="wedding 1" title="mysite.com/wp-content/uploads/2013/11/wedding_1.jpg">wedding 1</option>
</select>

基本上,以前的 value="mysite.com/..." 现在应该是 title="mysite.com/..." 并且 value 现在应该等于选项标签,例如“wedding 3”。

注意:我想忽略第一个<option>value=" " 因为我需要它保持不变。

4

2 回答 2

1

这是一个基本解决方案,它依赖于采用函数的attr()形式:

$(".gfield_select > option:gt(0)").attr("title", function() {
    return this.value;
}).attr("value", function() {
    return $(this).text();
});
于 2013-11-14T14:55:56.387 回答
0

你的例子让我有点困惑,但如果我没看错的话,你需要使用 jQuery 的 .attr() 函数,它允许你更改标题等属性,以及 .val() 函数,它可以让你更改元素价值。

例如:

$("option").attr("title","url").val("url");

请参阅 .attr() ( http://api.jquery.com/attr/ ) 和 .val() ( http://api.jquery.com/val/ )的 jQuery 文档。

更新

如果我理解正确,您首先要为 title 属性赋予 ... value 的值,然后使 value 等于该选项的文本。

$("option").each(function()
{
    $(this).attr("title", this.value).val($(this).text());
});
于 2013-11-14T14:46:22.777 回答