Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当连字符位于属性中时,如何分解e.target?_Javascript_Javascript Events_Ecmascript 6_Destructuring - Fatal编程技术网

Javascript 当连字符位于属性中时,如何分解e.target?

Javascript 当连字符位于属性中时,如何分解e.target?,javascript,javascript-events,ecmascript-6,destructuring,Javascript,Javascript Events,Ecmascript 6,Destructuring,我有一个像这样的输入字段 <input placeholder="Card Number" name="cc-number" data-stripe="number" class="add-card-form__card-number input" value=""> onFocus (e) { const { 'data-stripe': name, value } = e.target // do something with `name` and `value` }

我有一个像这样的输入字段

<input placeholder="Card Number" name="cc-number" data-stripe="number" class="add-card-form__card-number input" value="">
onFocus (e) {
  const { 'data-stripe': name, value } = e.target
  // do something with `name` and `value`
}
我知道我可以使用
e.target.getAttribute('data-stripe')
,但这违背了解构的目的。有什么办法吗


这里写的正是我在做的

DOM元素中没有
数据条带
属性。所有
data XXX
属性都将转换为
dataset
属性的属性。因此,您应该使用:

onFocus(e) {
    const { dataset: { stripe: name }, value } = e.target;
    // do something with name and value
}

它也可以作为
attributes
属性的元素进行访问,但由于这是一个数组,并且顺序不可预测,因此它对分解结构没有用处。

这不是连字符问题,只是没有正确调用HTML DOM。即使您的自定义属性是“stuff”,也不能作为e.target.stuff访问它。您自己的链接显示了如何访问连字符:属性

var {"data-stripe":{value:myVariableName}} = e.target.attributes;
//myVariableName="number"