我遇到了jquery的问题。
我希望在输入字段的特定数组索引上输出HTML。
<tr>
<td><input type="text" name="ean[]">
<input type="text" name="serial[]">
</td>
<td class="article[]"></td>
</tr>
$('input[name^="ean"]').change(function(event) {
var index = $('input[name^="ean"]').index( this );
$('.article:eq(index)').html("test");
});
目标是,在输入字段(ean)发生更改后,jquery会在索引(类文章)上放置特定值。
使用此代码,当前更改的索引没有输出。
提前感谢您的帮助。
答案 0 :(得分:2)
使用eq()
方法或连接索引值。
$('input[name^="ean"]').change(function(event) {
var index = $('input[name^="ean"]').index( this );
$('.article\\[\\]').eq(index).html("test");
});
$('input[name^="ean"]').change(function(event) {
var index = $('input[name^="ean"]').index( this );
$('.article\\[\\]:eq(' + index + ')').html("test");
});
虽然它总是更好地缓存jQuery对象以供将来使用。
var $art = $('.article\\[\\]');
var $inp = $('input[name^="ean"]').change(function(event) {
var index = $inp.index(this);
$art.eq(index).html("test");
});
仅供参考:类名最后包含[]
,因此您需要将其包含在选择器中,但由于方括号具有特殊含义,因此您需要将它们都包含在内。
或者,从类名中删除[]
并像往常一样使用它,我个人更喜欢这个。
<tr>
<td><input type="text" name="ean[]">
<input type="text" name="serial[]">
</td>
<td class="article"></td>
</tr>
var $art = $('.article');
var $inp = $('input[name^="ean"]').change(function(event) {
var index = $inp.index(this);
$art.eq(index).html("test");
});
答案 1 :(得分:0)
感谢您的快速回复。
不幸的是,它不起作用。
我使用适当的类名测试了td字段:
$('td[class^="article"]').html('test');
当然,有了它,它会对所有位置进行“测试”。
用
尝试后$('.article:eq(' + index + ')').html("test");
没有输出。
如果我尝试标记修复索引,也没有输出,例如
$('.article:eq(0)').html("test");
eq和我使用过的jquery版本(1.10.3)有问题吗?