gpt4 book ai didi

jquery - 如何使用 jQuery 将选择元素转换为单选按钮?

转载 作者:行者123 更新时间:2023-12-03 22:28:54 25 4
gpt4 key购买 nike

我正在尝试使用 jQuery 将选择框即时转换为单选按钮,但我不确定最好的方法。

示例 HTML:

  <form id="product">    
<select name="data[123]">
<option value="1">First</option>
<option value="2">Second</option>
......
<option value="n">xxxxxx</option>
</select>
</form>

我想在页面加载时使用 jquery 将其转换为:

<form id="product">
<input type="radio" name="data[123]" value="1" />
<label for="data[123]">First</label><br/>
<input type="radio" name="data[123]" value="2" />
<label for="data[123]">Second</label><br/>
......
<input type="radio" name="data[123]" value="n" />
<label for="data[123]">xxxxxx</label><br/>
</form>

并且它需要是动态的,因此它将针对每个选择框和内部的每个选项动态循环(因为不同的产品有不同的选项)

我正在尝试找出最好的方法。要么首先获取所有值的多维数组,然后构建单选按钮..或者在循环中一次交换一个。目前正在尝试前者,但我想我可能想得太多了:

$(document).ready(function(){

//Get Exising Select Options
$('form#product select').each(function(i, select){
$(select[i]).find('option').each(function(j, option){
//alert($(option).text());
option[j] = [];
option[j]['text'] = $(option).text();
option[j]['val'] = $(option).val();
});
});


//Remove Select box
$('form#product select').remove();
});

有没有人尝试过这个或者有一些我错过的 secret /更简单的方法?

最佳答案

我把它放在一起,并在几个浏览器中进行了测试,似乎都处理得很好。它将把数据从 <option> 中取出。元素并创建 <input/><label/><br/>对于每一个,然后删除选择框。

//Get Exising Select Options    
$('form#product select').each(function(i, select){
var $select = $(select);
$select.find('option').each(function(j, option){
var $option = $(option);
// Create a radio:
var $radio = $('<input type="radio" />');
// Set name and value:
$radio.attr('name', $select.attr('name')).attr('value', $option.val());
// Set checked if the option was selected
if ($option.attr('selected')) $radio.attr('checked', 'checked');
// Insert radio before select box:
$select.before($radio);
// Insert a label:
$select.before(
$("<label />").attr('for', $select.attr('name')).text($option.text())
);
// Insert a <br />:
$select.before("<br/>");
});
$select.remove();
});

关于jquery - 如何使用 jQuery 将选择元素转换为单选按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2029267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com