我有以下列表:
<ul>
<li onclick="populateComment(..this.)">very good </li>
<li onclick="populateComment(..this.)">not so good</li>
<li onclick="populateComment(..this.)">no t.....</li>
</ul>
和 JavaScript:
function populateComment() {
document.getElementById("COMMENT").value = document.getElementById("COMMENT").value + 'THE_STRING_VALUE_FROM_THE_LIST';
}
所以我的想法是我有一个文本区域,我通过单击列表来填充它。
因此,如果我单击第一个列表,文本“very good”应附加到文本区域。但我不想在我的函数中重新输入文本“very good”,我可以直接将其作为参数,如this.value..
所以它会自动采用 <li> ...</li>
之间的字符串
感谢您的宝贵时间。
最佳答案
您正在寻找:
this.textContent || this.innerText
this.textContent
所有不错的浏览器都支持,this.innerText
旧版本的 IE 需要。
您还可以将监听器绑定(bind)到<ul>
,而不是多次重复onclick处理程序。元素:
// Replace <ul> with <ul id="populatefrom">
document.getElementById("populatefrom").onclick = function(ev) {
ev = ev || window.event; //Backwards compatible with IE
var target = ev.target;
if (target.nodeName.toLowerCase() == "li") {
document.getElementById("COMMENT").value += target.textContent || target.innerText;
}
};
关于javascript - 使用 javascript 从列表传递此值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8636972/