【问题标题】:How to pass a variable within `<td>` tags?如何在`<td>`标签中传递变量?
【发布时间】:2024-04-14 04:40:01
【问题描述】:

我是 jQuery 的新手。我基本上想将带有 20 个选项的 &lt;select&gt; 下拉列表传递给 &lt;td&gt;,然后将其添加到名为 cols 的变量中。

$(document).ready(function () {
    var counter = 1;
    $("#addrow").on("click", function () {
        if (counter < 16) {
            var newRow = $("<tr>");
            var cols = "";
            var selectList = "<select name="itemQuantity' + counter + '">";
            for (var x = 0; x < 20; x++) {
                selectList += "<option>" + x + "</option>";
            }
            selectList += "</select>";
            cols += '<td><input type="text" class="form-control" name="itemName' + counter + '"/></td>';
            cols += '<td>selectList</td>';
            cols += '<td><input type="button" class="ibtnDel btn btn-md btn-danger " value="Delete"></td>';
            newRow.append(cols);
            $("table.order-list").append(newRow);
            counter++;
        }
    });

    $("table.order-list").on("click", ".ibtnDel", function (event) {
        $(this).closest("tr").remove();
        counter -= 1
    });

});

我基本上希望最终结果能够生成完全像这样的行:https://i.imgur.com/9blXTlw.jpg 每次我按“添加项目”时。该行目前存在某种错误:cols += '&lt;td&gt;selectList&lt;/td&gt;' 您可以看到我正在尝试完成的逻辑。如何在此处正确传递变量 selectList?

【问题讨论】:

  • 您可能会考虑在编写代码时使用一致的缩进 - 这将使阅读和调试变得更加容易,不仅对潜在的回答者,而且对您也是如此,因为我们都可以看到 { } 块及其嵌套级别一目了然,而不必仔细挑选每一行来挑选逻辑路径。

标签: jquery html tags


【解决方案1】:

您需要更改以下几行:

var selectList = "<select name="itemQuantity' + counter + '">";
cols += '<td>selectList</td>';

var selectList = "<select name='itemQuantity ' + counter + ' '>";
cols += '<td>' + selectList + '</td>';

【讨论】:

  • 谢谢,这是修复了一个错误,但是当我点击“添加项目”时我仍然得到这个:i.imgur.com/qCD3DgH.jpg
  • 是的,这行得通。非常感谢。不幸的是,我是全新的,我认为它不会让我投票给你。因此,每当我传递这样的变量时,我必须在每一侧都包含 + 吗?一旦我有 15 个声望并且可以做到这一点,我会回去为你投票。