我知道通过浏览jQuery traversal文档,没有一个jQuery函数可以完成我正在寻找的东西,所以我问的是什么组合(如果有的话)会做诀窍。
如果我们在页面上的每个<span>
都有1 <textarea>
,则无需通过添加id
或class
es或{{1}来获得广告素材}属性等希望获得与当前data-
事件的<span>
<textarea>
最接近的target
。
我们可以使用哪种jQuery遍历函数组合来解决这个问题?我研究并尝试了我所知道的一切。
查看此Fiddle以更好地查看此问题。
答案 0 :(得分:4)
没有一个jQuery函数可以完成我正在寻找的东西
实际上,你想要的只是prev
。
使用prev('span')
获取与给定选择器匹配的前一个元素。
$('div').on('keydown', 'textarea', function () {
$(this).prev('span').text($(this).val())
})
请参阅http://jsfiddle.net/aQ83s/2/
请注意,在keydown
事件中,textarea的值尚未更改。
答案 1 :(得分:0)
另一种方法,使用自定义数据属性和目标:
http://jsfiddle.net/r3wt/aQ83s/15/
<强> Jquery的强>
$('div').on('keyup', 'textarea', function() {
var target = $("span[extra-data='"+$(this).attr('target')+"']");
target.text($(this).val());
});
<强> HTML 强>
<div>
<span extra-data="1">1</span>
<br />
<textarea target="1"></textarea>
<span extra-data="2">2</span>
<textarea target="2"></textarea>
<span extra-data="3">3</span>
<textarea target="3"></textarea>
</div>