javascript - 如何在按钮单击 html 和 jquery 时在 <form> 中添加 <div>

标签 javascript jquery html css

每当单击“+”按钮 [addMore() 函数] 时,我都想添加以下 div 结构。虽然我可以添加 div 结构,但与硬编码相比,输入文本的对齐方式并不相同。

html文件:

<form class="align-center">
            <p class="6u 12u$(medium)">
                    Start Date: <input type="date" name="startdate" id="startdate" /> 
                    End Date: <input type="date" name="enddate" id="enddate" />
            </p>
            <p>
               <div class="6u$ 12u$(xsmall)"><input type="text" name="numParticipants" id="numParticipants" value="" placeholder="Number of Participants"/></div>
            </p>
            <p>
                <div class="row">
                        <div class="3u 12u$(medium)">
                            <div class="select-wrapper">
                                <select>
                                    <option value="">-Select Programme-</option>
                                    <option value="1">Yogalates</option>
                                    <option value="2">Pilates</option>
                                    <option value="3">Kick Boxing</option>
                                    <option value="4">K-Pop Dance</option>
                                    <option value="5">Hip Hop</option>
                                    <option value="6">Jazz Aerobics</option>
                                    <option value="7">Zumba</option>
                                    <option value="8">Fitball</option>
                                </select>
                            </div>
                        </div>
                    <div>OR</div>
                    <div class="3u 12u$(medium)">
                            <div class="12u$">
                                <input type="text" value="" placeholder="Customize your own programme" />
                            </div>
                    </div>
                    <div class="2u 12u$(medium)">
                        <div class="12u$">
                            <input type="text" value="" placeholder="Venue" />
                        </div>
                    </div>
                </div>  
            </p> 
            <p>
                <div class="row" id="newProg">
                </div>
                <div class="row">
                    <div class="2u 12u$(medium)">
                        <a class="button" onclick="addMore()"><div style="font-size: 35px">+</div></a>
                        <a class="button" style="margin:0 0 0 1em" onclick="removeProg()"><div style="font-size: 35px">-</div></a>
                    </div>
                </div>
                <div class="2u 12u$(medium); image right">
                    <a href="#popup1" class="button">Submit</a>
                </div>
            </p>                              
    </form>

主要.js

    var counter = 0;
function addMore() {
        counter++;
        var objNewDiv = document.createElement('div');
        objNewDiv.setAttribute('id', 'addProg' + counter);
        objNewDiv.setAttribute('class', 'row');
        objNewDiv.innerHTML = '<div class="5u 12u$(medium)"> <div class="select-wrapper"> <select> <option value="">-Select Programme-</option> <option value="1">Yogalates</option> <option value="2">Pilates</option> <option value="3">Kick Boxing</option> <option value="4">K-Pop Dance</option> <option value="5">Hip Hop</option> <option value="6">Jazz Aerobics</option> <option value="7">Zumba</option> <option value="8">Fitball</option> </select> </div> </div> <div>OR</div> <div class="5u 12u$(medium)"> <input type="text" value="" placeholder="Customize your own programme"/> </div> <div class="3u$ 12u$(medium)"> <input type="text" value="" placeholder="Venue" /> </div> ';
        document.getElementById('newProg').appendChild(objNewDiv);
}

页面加载结果: when page loaded

实际和预期结果: actual and expected outcome

最佳答案

div 的类名不同您在 jquery 中附加的标签。

让它和静态HTML内容一样,就能达到预期的效果。

我看到的差异如下。

静态 HTML 有 - <div class="3u 12u$(medium)"> ,你的 Jquery HTML 有 - <div class="5u 12u$(medium)">

静态 HTML 有 - <div class="3u 12u$(medium)"> , 你的 jquery HTML 有 - <div class="5u 12u$(medium)">

静态 HTML 有 - <div class="2u$ 12u$(medium)"> , 你的 Jquery HTML 有 <div class="3u$ 12u$(medium)">

由于类名的不同,您会发现它在 UI 中的呈现方式不同。

关于javascript - 如何在按钮单击 html 和 jquery 时在 <form> 中添加 <div>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40945112/

相关文章:

javascript - 为什么 Array.splice() 这么慢?

javascript - jQuery 获取 "event invoking"元素

javascript - 在 javascript 中读取 html 复选框

javascript - 使用 JavaScript FileReader 显示图像

JavaScript - window.scroll({ 行为 : 'smooth' }) not working in Safari

javascript - 使函数分别作用于每个元素

javascript - 在下拉列表中选择一个值,不带 id

jquery - 如何删除重复的 div 部分?

jquery - ASP.NET MVC 3 - 通过 ajax 将额外参数与模型一起传递给操作不起作用

html - CSS 边框图像比 div 宽