Javascript 从映射函数中的上一个同级获取innerText
基本上,我的html如下所示: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
<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();