jquery - 不是由 jquery 生成时的未知边距

标签 jquery css forms

我正在尝试构建类似这种形式的东西:

https://jsfiddle.net/zycyuyrz/

问题是,即使 html 行的 html 代码和 jquery 生成的 html 行相同,它们看起来也不同。有人知道这是怎么回事吗?

html:

<div class="container">
    <fieldset id="formbuilder">
        <legend>Shopping list</legend>

        <p>Some text with some more text, describing the multiple shopping list.</p>

        <div class="form-container" id="form-container">

            <div class="list-item" id="list-item-1">
                <label class="sku-label" for="sku-1">SKU - 1</label>
                <input class="sku-input" type="text" id="sku-1" name="sku1" />
                <label class="qty-label" for="q-1">Qty</label>
                <input class="qty-input" type="text" id="q-1" name="q1" />
                <input class="btn-ver" type="button" name="verify1" value="Verify if available" />
                <input class="btn-rem" type="button" name="remove1" value="Remove (-)" />
            </div>

            <div class="list-item" id="list-item-2">
                <label class="sku-label" for="sku-2">SKU - 2</label>
                <input class="sku-input" type="text" id="sku-2" name="sku2" />
                <label class="qty-label" for="q-2">Qty</label>
                <input class="qty-input" type="text" id="q-2" name="q2" />
                <input class="btn-ver" type="button" name="verify2" value="Verify if available" />
                <input class="btn-rem" type="button" name="remove2" value="Remove (-)" />
            </div>

        </div>

    </fieldset>
        <input type="button" value="Send all to cart" class="btm-btn" id="send-to-cart" />
        <input type="button" value="Add new product (+)" class="btm-btn" id="add" />

</div>

js:

$(document).ready(function(){
    $('#add').click(function(){
        var intId = $('#form-container .list-item').length + 1;
        var fWrapper = $("<div class=\"list-item\" id=\"list-item-" + intId + "\"></div>");

        var fLabelSku = $("<label class=\"sku-label\" for=\"sku-" + intId + "\">SKU - " + intId + "</label>");
        var fInputSku = $("<input class=\"sku-input\" type=\"text\" id=\"sku-" + intId + "\" name=\"sku" + intId + "\" />");
        var fLabelQty = $("<label class=\"qty-label\" for=\"q-" + intId + "\">Qty</label>");
        var fInputQty = $("<input class=\"qty-input\" type=\"text\" id=\"q-" + intId + "\" name=\"q" + intId + "\" />");
        var fBtnVerify = $("<input class=\"btn-ver\" type=\"button\" name=\"verify" + intId + "\" value=\"Verify if available\" />");
        var fBtnRemove = $("<input class=\"btn-rem\" type=\"button\" name=\"remove" + intId + "\" value=\"Remove (-)\" />");


        fWrapper.append(fLabelSku);
        fWrapper.append(fInputSku);
        fWrapper.append(fLabelQty);
        fWrapper.append(fInputQty);
        fWrapper.append(fBtnVerify);
        fWrapper.append(fBtnRemove);

        $('#form-container').append(fWrapper);



    });
});

CSS:

.container {
    max-width: 700px;
    margin: 0 auto;
    margin-top: 60px;
}

.btm-btn {
    float: right;
    margin-top: 10px;
    margin-left: 10px;
}

.qty-input {
    width: 30px;
}

.list-item {
    margin-bottom: 10px;
}

最佳答案

您没有像在原始 HTML 中那样在 jQuery 代码中的元素之间添加任何间距。将 fWrapper.append(""); 放在元素之间。

$(document).ready(function() {
  $('#add').click(function() {
    var intId = $('#form-container .list-item').length + 1;
    var fWrapper = $("<div class=\"list-item\" id=\"list-item-" + intId + "\"></div>");

    var fLabelSku = $("<label class=\"sku-label\" for=\"sku-" + intId + "\">SKU - " + intId + "</label>");
    var fInputSku = $("<input class=\"sku-input\" type=\"text\" id=\"sku-" + intId + "\" name=\"sku" + intId + "\" />");
    var fLabelQty = $("<label class=\"qty-label\" for=\"q-" + intId + "\">Qty</label>");
    var fInputQty = $("<input class=\"qty-input\" type=\"text\" id=\"q-" + intId + "\" name=\"q" + intId + "\" />");
    var fBtnVerify = $("<input class=\"btn-ver\" type=\"button\" name=\"verify" + intId + "\" value=\"Verify if available\" />");
    var fBtnRemove = $("<input class=\"btn-rem\" type=\"button\" name=\"remove" + intId + "\" value=\"Remove (-)\" />");


    fWrapper.append(fLabelSku);
    fWrapper.append(" ");
    fWrapper.append(fInputSku);
    fWrapper.append(" ");
    fWrapper.append(fLabelQty);
    fWrapper.append(" ");
    fWrapper.append(fInputQty);
    fWrapper.append(" ");
    fWrapper.append(fBtnVerify);
    fWrapper.append(" ");
    fWrapper.append(fBtnRemove);

    $('#form-container').append(fWrapper);



  });
});
.container {
  max-width: 700px;
  margin: 0 auto;
  margin-top: 60px;
}
.btm-btn {
  float: right;
  margin-top: 10px;
  margin-left: 10px;
}
.qty-input {
  width: 30px;
}
.list-item {
  margin-bottom: 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
  <fieldset id="formbuilder">
    <legend>Shopping list</legend>

    <p>Some text with some more text, describing the multiple shopping list.</p>

    <div class="form-container" id="form-container">

      <div class="list-item" id="list-item-1">
        <label class="sku-label" for="sku-1">SKU - 1</label>
        <input class="sku-input" type="text" id="sku-1" name="sku1" />
        <label class="qty-label" for="q-1">Qty</label>
        <input class="qty-input" type="text" id="q-1" name="q1" />
        <input class="btn-ver" type="button" name="verify1" value="Verify if available" />
        <input class="btn-rem" type="button" name="remove1" value="Remove (-)" />
      </div>

      <div class="list-item" id="list-item-2">
        <label class="sku-label" for="sku-2">SKU - 2</label>
        <input class="sku-input" type="text" id="sku-2" name="sku2" />
        <label class="qty-label" for="q-2">Qty</label>
        <input class="qty-input" type="text" id="q-2" name="q2" />
        <input class="btn-ver" type="button" name="verify2" value="Verify if available" />
        <input class="btn-rem" type="button" name="remove2" value="Remove (-)" />
      </div>

    </div>

  </fieldset>
  <input type="button" value="Send all to cart" class="btm-btn" id="send-to-cart" />
  <input type="button" value="Add new product (+)" class="btm-btn" id="add" />

</div>

关于jquery - 不是由 jquery 生成时的未知边距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33012278/

相关文章:

javascript - 如何制作用户可以使用导航按钮而不使用计时器的幻灯片

javascript - 如何运行远程 PHP 脚本,然后点击 HTML 页面中的链接

jquery - 如何在提交表单时使用 JQuery Ajax 发送请求而不重新加载页面

php - 我如何使用随机数预填写表单,并允许用户输入他们的信息?我使用 html、php 和我的 sql

jquery - 将 JSON 与 XQuery 页面结合使用

javascript - 如何让这种玻璃 splinter 效果适用于多个 div?

html - 只有一个标签选择显示在 html 中

javascript - 菜单在鼠标悬停时淡入淡出

html - 多个 float 左边不会 float 在每个留下难看的空白

ruby - 如何根据其拥有的字段使用 Mechanize 选择表单?