为什么我的 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>