填充<选择>带有一个数组的下拉菜单

发布于 2024-10-12 12:32:16 字数 363 浏览 3 评论 0原文

我有一个包含 100 多种颜色的列表,位于单独的 中。每个都有一个唯一的ID。我想使用 jQuery 查找每个 td 的 ID 并将其放入数组中。然后我想使用该数组并创建类似于以下内容的内容:

<select>
    <option value="array[0]"> array[0]</option>
    <option value="array[1]"> array[1]</option>
    ...
</select>`

到目前为止我看到的每个示例都需要编码器手动输入数组。我希望找到更有效的东西。

I have a list of over 100 colors in seperate <td>s. Each <td> has a unique ID. I would like to use jQuery to find the ID's of every td and put it in an array. Then I would like to use that array and create something similar to the following:

<select>
    <option value="array[0]"> array[0]</option>
    <option value="array[1]"> array[1]</option>
    ...
</select>`

Every example I've looked at so far requires the coder to manually type out the array. I'm hoping to find something more efficient.

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

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

发布评论

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

评论(4

哎呦我呸! 2024-10-19 12:32:16

如果您只需要数组来填充下拉列表,那么您可以绕过创建数组。
试试这个:

<table id="colorsTable">
    <tr>
        <td>...</td>
    </tr>
    .
    .
    .
    .
</table>

<select id="colorsList" name="colorsList">
    <option value="array[0]"> array[0]</option>     
    <option value="array[1]"> array[1]</option>
</select>
<script type="text/javascript">
    function populateDropDown()
    {
        var colorsList = $("#colorsList");
        $("#colorsTable td").each
        (
            function()
            {
                colorsList.append($("<option/>").val($(this).text()));
            }
        );
    }
</script>

If you need the array just for populating the drop down then you can bypass creating array.
Try this:

<table id="colorsTable">
    <tr>
        <td>...</td>
    </tr>
    .
    .
    .
    .
</table>

<select id="colorsList" name="colorsList">
    <option value="array[0]"> array[0]</option>     
    <option value="array[1]"> array[1]</option>
</select>
<script type="text/javascript">
    function populateDropDown()
    {
        var colorsList = $("#colorsList");
        $("#colorsTable td").each
        (
            function()
            {
                colorsList.append($("<option/>").val($(this).text()));
            }
        );
    }
</script>
我爱人 2024-10-19 12:32:16

你可以这样做:

var $select = $('<select>');
$('#tableID td[id]').each(function(idx){
    $select.append('<option value="' + this.id + '"> ' + this.id + '</option>');
});
$select.appendTo('#someElement');

You could do something like this:

var $select = $('<select>');
$('#tableID td[id]').each(function(idx){
    $select.append('<option value="' + this.id + '"> ' + this.id + '</option>');
});
$select.appendTo('#someElement');
青春如此纠结 2024-10-19 12:32:16
$("td").get() 

为您提供一个包含所有匹配元素的数组。
然后你可以遍历,为数组的每个元素构建你的选项字符串。
像这样的事情:

var s = "";
var elements = $("td").get();
for (var i=0; i<elements.length; i++) {
    var el = elements[i];
    s+='<option value="'+el.id+'">'+el.id+'</option>'; 
}

如果页面上有其他 tds,请执行类似 $("element#that-is-parent-to-needed-tds td"); 的操作

$("td").get() 

gets you an array with all the matched elements.
Then you can just traverse, for every element of array you build up your options string.
Something like this:

var s = "";
var elements = $("td").get();
for (var i=0; i<elements.length; i++) {
    var el = elements[i];
    s+='<option value="'+el.id+'">'+el.id+'</option>'; 
}

If you have other tds on the page, do something like $("element#that-is-parent-to-needed-tds td");

孤寂小茶 2024-10-19 12:32:16
var cells = $('table tr td');
var sel = $('<select>');

cells.each(function(cell) {
 var opt = document.createElement('option');
 opt.value = cell.id;
 opt.innerHTML = cell.id;
 sel.append(opt);
});
var cells = $('table tr td');
var sel = $('<select>');

cells.each(function(cell) {
 var opt = document.createElement('option');
 opt.value = cell.id;
 opt.innerHTML = cell.id;
 sel.append(opt);
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文