【发布时间】:2017-01-12 17:04:09
【问题描述】:
我有一个主 div,里面有一些分配了数据值的内部 div。我不知道是不是因为我使用的是 Bootstrap 或 div 结构,但是当我单击实际数字(如按钮中心)时,我得到“null”,单击数字外部,给出所需结果。我尝试将数字放在 p 标签内并在那里分配数据值,但随后我得到整个按钮的“null”。
如何点击 div 内的文本并获取它们的值?
你可以在这里看到实际的问题(忽略操作数按钮,7 在我运行测试时总是返回 null):
https://jsfiddle.net/chuLmpoy/
HTML
<div class="container">
<div class="row output">
<div class="col-xs-12">
<div>
<p id="totalNumber"> <strong> </strong> </p>
</div>
</div>
<!--col-xs-12-->
</div>
<!--rowOutput-->
<div class="row1">
<div class="col-xs-3 transparent"> <strong> 7 </strong> </div>
<div class="col-xs-3 transparent"><strong> 8 <strong></div>
<div class="col-xs-3"><strong> <- <strong></div>
<div class="col-xs-3"><strong> C <strong></div>
</div><!--row1-->
<div class="row1">
<div class="col-xs-3 number"> <p data value="7"><strong>7 </strong> </p></div>
<div class="col-xs-3 number" data-value="8"><strong> 8 <strong></div>
<div class="col-xs-3 number" data-value="9"><strong> 9 <strong></div>
<div class="col-xs-3"><strong> / <strong></div>
</div><!--row1-->
<div class="row1">
<div class="col-xs-3 number"data-value="4"><strong> 4 </strong> </div>
<div class="col-xs-3 number" data-value="5"><strong> 5 <strong></div>
<div class="col-xs-3 number" data-value="6"><strong> 6 <strong></div>
<div class="col-xs-3"><strong> * <strong></div>
</div><!--row1-->
<div class="row1">
<div class="col-xs-3 number" data-value="1"><strong> 1 </strong> </div>
<div class="col-xs-3 number" data-value="2"><strong> 2 <strong></div>
<div class="col-xs-3 number" data-value="3"><strong> 3 <strong></div>
<div class="col-xs-3"><strong> - <strong></div>
</div><!--row1-->
<div class="row1">
<div class="col-xs-3 number" data-value="0"><strong> 0 </strong> </div>
<div class="col-xs-3"><strong> . <strong></div>
<div class="col-xs-3"><strong> + <strong></div>
<div class="col-xs-3"><strong> = <strong></div>
</div><!--row1-->
</div><!--container-->
</body>
JS
"use strict";
const numbers = document.querySelector(".container");
numbers.addEventListener("click", getEachValue);
function getEachValue(e){
let clickedValue = e.target.getAttribute('data-value');
console.log(clickedValue);
}
【问题讨论】:
标签: javascript event-bubbling event-delegation