没有一个jQuery函数可以做我想要的事情
实际上,你需要的只是 prev
。
使用 prev('span')
获取与给定选择器匹配的前一个元素。
$('div').on('keydown', 'textarea', function () {
$(this).prev('span').text($(this).val())
})
keydown
事件中,文本区域的值还没有被改变。另一种方法是使用自定义数据属性和目标:
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>
id
、class
或data-
属性,是为了通过社区确认我没有忽略或误用jQuery的某个函数(在链式函数中这很容易发生),或者在生成动态HTML块时希望减少使用额外功能。再次感谢您的意见。 - id.ot
<br/>
标签,它将不再起作用,而这正是原始问题的重点。请参见此处:http://jsfiddle.net/r3wt/aQ83s/16/。 - r3wt