在Jquery函数上使用箭头函数

时间:2018-04-17 13:42:34

标签: javascript jquery ecmascript-6 arrow-functions

难以将Jquery地图函数转换为箭头函数。

这是{{3}}。



def encode_headers_tween_factory(handler, registry):
    def encode_headers_tween(request):
        resp = handler(request)
        for key in resp.headers.keys():
            values = resp.headers.getall(key)
            del resp.headers[key]
            for value in values:
                resp.headers.add(str(key), str(value))
        return resp
    return encode_headers_tween

config.add_tween('h.tweens.encode_headers_tween_factory')

// find elements
$('button').click(function(e) {
  let answerArray = $(`[name="foo"]`).map(function() {
    return $(this).val();
  }).get();
  console.log(answerArray)
  
  let answerArray2 = $(`[name="foo"]`).map(x => $(x).val()).get();
  console.log(answerArray2)
})




但我收到了。

  

VM118 jquery.js:7977 Uncaught TypeError:无法读取属性   ' toLowerCase'未定义的       在jQuery.fn.init.val(VM102 jquery.js:7977)       在HTMLInputElement。$。map.x((index):74)       在VM102 jquery.js:194       在Function.map(VM102 jquery.js:443)       在jQuery.fn.init.map(VM102 jquery.js:193)       在HTMLButtonElement。 ((指数):74)       在HTMLButtonElement.dispatch(VM102 jquery.js:5183)       在HTMLButtonElement.elemData.handle(VM102 jquery.js:4991)

1 个答案:

答案 0 :(得分:4)

根据您的代码, x 指的是索引而不是元素,因此您收到错误。

使用.map()的正确callback函数参数。

  

类型:函数(整数索引,元素 domElement )=>宾语   将为当前集合中的每个元素调用的函数对象。



// find elements
$('button').click(function(e) {

  let answerArray2 = $(`[name="foo"]`).map((i, x) => $(x).val()).get();
  console.log(answerArray2)
})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="foo">
<input name="foo">
<button>
  enter
</button>
&#13;
&#13;
&#13;