我有一个表单,当用户单击add或subtract users按钮时,它会添加和减去一个较小的表单。
我想要做的是,每当用户点击add按钮时,在div标记内的ID标记中添加一个+1。令人困惑的是,我知道,说这是原始标签:
<div id="formwrap" class="test" name="test">im a form in this formwrap</div>
现在假设用户点击add按钮,一个新的表单将在当前表单下面弹出,并使用打印或回显版本的javascript,这将是使用.append(html)或其他类似内容为div创建的新代码,如下所示:
<div id="formwrap" class="test" name="test">im a form in this formwrap</div>
<div id="formwrap" class="test2" name="test2">im a form in this formwrap</div>
如上所示,如果有人单击add按钮,则2将变为3
<div id="formwrap" class="test(+1 code would go here)" name="test(+1 code would go here)">im a form in this formwrap</div>
那么,在我编写代码之前,这是可能的吗?我希望能够以不同的方式样式较小的表单,我希望phpmailer能够获得检索所有的数据,这取决于他们有多少点击。并且在每个标签中添加一个+1就可以实现这两个目标。
发布于 2018-08-18 03:46:04
使用数据属性是可能的。
请参阅:https://developer.mozilla.org/en-US/docs/Learn/HTML/Howto/Use_data_attributes
你会做这样的事情
var count = 0
var formwrap = document.getElementById('formwrap');
formwrap.dataset.name = "aName" + count
// increment count on click
发布于 2018-08-18 04:03:51
你可以使用jquery来实现这一点,当用户点击add按钮时,你必须像这样增加count的值……
var count = 0;
$("button").on("click", function () {
var html = '<div id="formwrap'+count+'" class="test'+count+'"
name="test'+count+'">im a form in this formwrap</div>';
count++;
$(div).append(html);
});
这样你就可以做到这一点。
发布于 2018-08-18 04:18:23
//Create a private counter var
const counter = (function() {
var formCount = 0;
return {
value: () => formCount,
increment: () => ++formCount
}
})();
//A function that will generate a "form" element
const ID_PREFIX = 'formwrap_';
const generateFormEl = () => {
let el = document.createElement('div');
el.setAttribute('id', `${ID_PREFIX}${counter.increment()}`);
el.setAttribute('class', 'test');
el.setAttribute('name', 'test');
el.appendChild(document.createTextNode(`ID: ${el.getAttribute('id')}`));
return el;
};
//Store your DOM elements in some vars
const forms = document.querySelector('#forms');
const btn = document.querySelector('[type="button"]');
//Add a form element to the DOM on click
btn.addEventListener('click', () => {
const form = generateFormEl();
forms.appendChild(form);
});
<div id="container">
<input type="button" value="Add a form" />
<div id="forms"></div>
</div>
https://stackoverflow.com/questions/51901908
复制相似问题