关于动态id的模糊事件的jquery复制元素

时间:2014-06-25 18:39:05

标签: jquery

我需要在事件模糊()发生时从id = b-0中的id = a-0复制文本,如果他们在a-1中输入某些内容则相同,那么它应该将文本复制到c-1。但由于我有很多行(a-x),我不能使用id作为触发器。

因此,对于a-#输入的模糊,每个b-#和c-#输入获得相应的a- #input

的相同值。

每个TR标记代表一行。

<table>
<tr>
<td><input class="abc" id="a-0" value="test"></td>
<td><input class="abc" id="b-0"></td>
<td><input class="abc" id="c-0"></td>
</tr>
<tr>  
    <td><input class="abc" id="a-1"></td>
    <td><input class="abc" id="b-1"></td>
    <td><input class="abc" id="c-1"></td>
</tr>
</table>

我有以下代码,所以我有id的值,但我怎样才能将它复制到id = b-x

 $('.abc').blur(function(){

        $('#' + this.id).val()

    })

2 个答案:

答案 0 :(得分:1)

$('.abc').blur(function () {
    $(this).parent().nextAll().find('input').val($(this).val())
})

<强> jsFiddle example

答案 1 :(得分:0)

我建议分析id

这是一个有效的例子:

$('.abc').blur(function(event){

    var sourceId = this.id;

    var index = sourceId.replace(/[^0-9]/g, '');
    var targetId = 'b-' + index;

    var value = $(this).val();
    $('#' + targetId).val(value);

});

这样一个正确形成的id,你也可以分割和分析索引号以及字母。

您还可以考虑使用<input data-index="1" id="something" ...>等免费属性。然后,在回调中,直接将数据索引作为数字$(this).prop('data-index')获取。 data-index不必是唯一的,这是您的优势。