[英]How do i store the e.target in a variable?
单击输入(复选框)后,我希望文本区域具有2px的纯绿色边框。 用户可以添加更多复选框和德克萨斯州。 问题是如何将texarea存储在变量中然后设置样式? 码
<div class="container">
<h1 class="title">Question 1</h1>
<textarea type="checkbox" name="question" id="q1" cols="30" rows="5">How old am I?</textarea> <br><br>
<input type="checkbox"><textarea class='ans' type="checkbox" name="question" cols="30" rows="5">Whay is your name</textarea> <br><br>
<input type="checkbox"><textarea class='ans'type="checkbox" name="question" cols="30" rows="5">What is your name</textarea> <br><br>
<input type="checkbox"><textarea class='ans'type="checkbox" name="question" cols="30" rows="5">Whatv</textarea> <br><br>
<button onclick="getButton()">Add an option</button>
</div>
JAVASCRIPT
let button = document.querySelector('button');
let container = document.querySelector('.container');
let textArea;
let getButton = () => {
// create input
const input = document.createElement('input');
// add type to input
input.type = 'checkbox';
// create textarea
textArea = document.createElement('textarea');
// add name to textArea
textArea.name = 'question';
// add className
textArea.className = 'ans'
// cols
textArea.cols = 30;
// rows
textArea.rows = 5;
// insert into the container
container.insertBefore(input, button)
container.insertBefore(textArea, button)
}
container.addEventListener('click', function(e){
test = e.currentTarget.tagName;
if(e.target.value === '' && e.target.tagName === 'TEXTAREA'){
console.log('I am empty');
} else if(e.target.tagName === 'TEXTAREA'){
console.log(e.target.value);
}
})
container.addEventListener('click', function(e){
if(e.target.tagName === 'INPUT' || e.target.tagName === 'TEXTAREA'){
}
})
我使用nextSibling
解决您的问题:
let button = document.querySelector('button'); let container = document.querySelector('.container'); let textArea; let getButton = () => { // create input const input = document.createElement('input'); // add type to input input.type = 'checkbox'; // create textarea textArea = document.createElement('textarea'); // add name to textArea textArea.name = 'question'; // add className textArea.className = 'ans' // cols textArea.cols = 30; // rows textArea.rows = 5; // insert into the container container.insertBefore(input, button) container.insertBefore(textArea, button) } container.addEventListener('click', function(e){ test = e.currentTarget.tagName; if(e.target.value === '' && e.target.tagName === 'TEXTAREA'){ console.log('I am empty'); } else if(e.target.tagName === 'TEXTAREA'){ console.log(e.target.value); } else if(e.target.tagName === 'INPUT'){ e.target.nextSibling.style.border = e.target.checked? '2px solid green' : ''; } })
<div class="container"> <h1 class="title">Question 1</h1> <textarea type="checkbox" name="question" id="q1" cols="30" rows="5">How old am I?</textarea> <br><br> <input type="checkbox"><textarea class='ans' type="checkbox" name="question" cols="30" rows="5">Whay is your name</textarea> <br><br> <input type="checkbox"><textarea class='ans'type="checkbox" name="question" cols="30" rows="5">What is your name</textarea> <br><br> <input type="checkbox"><textarea class='ans'type="checkbox" name="question" cols="30" rows="5">Whatv</textarea> <br><br> <button onclick="getButton()">Add an option</button> </div>
我不确定我是否理解您的问题,但是您可以使用outerHTML
存储元素的HTML:
let yourVariable = e.target.outerHTML;
然后,您可以创建一个新元素,将其附加到DOM,并将其HTML设置为yourVariable
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.