Javascript 从映射函数中的上一个同级获取innerText

Javascript 从映射函数中的上一个同级获取innerText,javascript,jquery,Javascript,Jquery,基本上,我的html如下所示: <label contenteditable>Label</label> <input type="text"> 或者别的什么 我想我应该借助于map(),在其中我想我可以使用previousElementSibling和innerText这样: var newObj = {} $('input[type=text]').map(function() { var fieldName = $(this).pr

基本上,我的html如下所示:

<label contenteditable>Label</label>
<input type="text">
或者别的什么

我想我应该借助于
map()
,在其中我想我可以使用
previousElementSibling
innerText
这样:

var newObj = {}
    $('input[type=text]').map(function() {
      var fieldName = $(this).previousElementSibling.innerText
      newObj[fieldName] = $(this).val()
    })
遗憾的是,这只返回一个错误,表示:

无法读取未定义的属性“innerText”

我尝试过通过函数传递
元素
属性,而不是使用
this
,我尝试过使用
prev()
(它说它不是一个函数),我尝试过我能想到的一切,但没有任何效果。“有趣”的是,当我
console.dir($(this))
在地图中时,我可以从字面上看到
previousElementSibling.innerText
编辑:显然我不能,但
console.dir(this)
可以!),这就是我认为它可以工作的原因


我做错了什么?

那是因为您将
包装在jQuery对象中:
$(this)
。jQuery对象本身没有
previousElementSibling
方法,但是
this

将代码更改为:

this.previousElementSibling.innerText;
或者改用jQuery方法:

$(this).prev().text();


作为旁注,您还可以使用
this.value
代替
$(this.val()

没有时间回答。投票在这里是文件好的****我。谢谢
$(this).prev().text();