jQuery - 最近的兄弟姐妹

时间:2014-07-01 01:48:38

标签: jquery html

我知道通过浏览jQuery traversal文档,没有一个jQuery函数可以完成我正在寻找的东西,所以我问的是什么组合(如果有的话)会做诀窍。

如果我们在页面上的每个<span>都有1 <textarea>,则无需通过添加idclass es或{{1}来获得广告素材}属性等希望获得与当前data-事件的<span> <textarea>最接近的target

我们可以使用哪种jQuery遍历函数组合来解决这个问题?我研究并尝试了我所知道的一切。

查看此Fiddle以更好地查看此问题。

2 个答案:

答案 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>