通过javascript从列表传递这个值
Pass this value from a list with javascript
我有以下列表:
<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中需要。
您还可以将侦听器绑定到<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;
}
};
如果你没有任何东西,除了一个简单的文本,你也可以使用:
this.firstChild.nodeValue;
然而,如果有任何节点(粗体,span,或其他任何东西,而不是文本…即使是HTML注释),那么这将不起作用,你需要textContent/innerText
组合Rob W给。
当然你可以用jQuery这样做(还没有测试):
<ul>
<li class="populateComment">very good </li>
<li class="populateComment">not so good</li>
<li class="populateComment">no t.....</li>
</ul>
和jQuery:
$('.populateComment').click(function(){
$('#textboxID').val($(this).html());
});
工作jsfiddle: http://jsfiddle.net/zEaam/
相关文章:
- IE8/Javascript冲突?IE8正在开发中冻结整个站点-包括Javascript列表
- Javascript列表/牛排
- JavaScript:列表项中的导航栏下拉菜单
- Javascript 列表说明
- 带有计算器的Javascript列表不起作用
- 如何获取我的页面上使用的外部 JavaScript 列表
- 如何在Javascript列表中设置对象创建的限制
- Google 放置 HTML/Javascript 列表
- JavaScript列表键和鼠标事件挂钩
- 地图的Javascript列表's键
- javascript列表操作库/框架
- 正在尝试使用Javascript列表并查找文件
- 如何提取带有数组属性的javascript列表
- 如何获得月javascript列表
- Eloquent Javascript列表返回undefined,Why
- 选择JavaScript列表更新
- 为什么JavaScript列表中的多个小数会在元素list'后抛出'错误
- JavaScript列表操作是同步的吗?
- 谷歌驱动器api, javascript列表文件返回什么
- Javascript列表对象可以'不添加JSON?node . js,重火力点