为什么我的 div 值未定义?
Why would my divs value be undefined?
我正在创建全局 div
元素并为它们全部分配一个值来表示它们是星期几。
var daysOfWeek = ['Mon', 'Tues', 'Wed', 'Thurs', 'Fri', 'Sat', 'Sun']
var daysOfWeekNum = [1,2,3,4,5,6,0]
var dayOfWeek = myDiv.append('div')
.classed('dayOfWeek', true)
var dayLabels = daysOfWeek.forEach(function(DoW, DoWN){
dayOfWeek.append('div')
.attr("value", function(){ return parseInt((DoW == 'Sun') ? DoWN = 0 : DoWN = DoWN + 1)})
.text(DoW)
})
然后在脚本中,我 运行 这个。
d3.selectAll('div.dayOfWeek')
.on('click', function(){
console.log(this)
console.log(this.value)
})
所以当我 运行 console.log(this)
输出看起来像这样:
<div class = "dayOfWeek" value="4">Thurs</div>
我的问题在 console.log(this.value)
。当我尝试记录它时,我没有得到值。它只是给了我 undefined
。我错过了一些明显的东西吗?
Divs 在 HTML 中没有 value
属性,并且 value
属性 没有映射到 [= =28=]。
如果设置了属性,则必须读取属性才能获取数据库。
由于 div 没有值属性,因此您不应该设置一个。如果要向元素添加自定义数据,请使用 data-*
属性。
document.querySelector('div').dataset.value = 1234;
alert(document.querySelector('div').dataset.value);
<div>My div</div>
我正在创建全局 div
元素并为它们全部分配一个值来表示它们是星期几。
var daysOfWeek = ['Mon', 'Tues', 'Wed', 'Thurs', 'Fri', 'Sat', 'Sun']
var daysOfWeekNum = [1,2,3,4,5,6,0]
var dayOfWeek = myDiv.append('div')
.classed('dayOfWeek', true)
var dayLabels = daysOfWeek.forEach(function(DoW, DoWN){
dayOfWeek.append('div')
.attr("value", function(){ return parseInt((DoW == 'Sun') ? DoWN = 0 : DoWN = DoWN + 1)})
.text(DoW)
})
然后在脚本中,我 运行 这个。
d3.selectAll('div.dayOfWeek')
.on('click', function(){
console.log(this)
console.log(this.value)
})
所以当我 运行 console.log(this)
输出看起来像这样:
<div class = "dayOfWeek" value="4">Thurs</div>
我的问题在 console.log(this.value)
。当我尝试记录它时,我没有得到值。它只是给了我 undefined
。我错过了一些明显的东西吗?
Divs 在 HTML 中没有 value
属性,并且 value
属性 没有映射到 [= =28=]。
如果设置了属性,则必须读取属性才能获取数据库。
由于 div 没有值属性,因此您不应该设置一个。如果要向元素添加自定义数据,请使用 data-*
属性。
document.querySelector('div').dataset.value = 1234;
alert(document.querySelector('div').dataset.value);
<div>My div</div>