function shortDescription(a){
var descriptionInput;
var tbl = $(document.getElementById('21.125-mrss-cont-none-content'));
tbl.find('tr').each(function () {
$(this).find("input[name$='6#if']").keypress(function (e) {
if (e.which == 13) {
descriptionInput = $(this).val();
$(this).val(descriptionInput);
$(document.getElementById('__AGIM0:U:1:4:2:1:1::0:14')).val(descriptionInput);
}
console.log(descriptionInput);
});
});
});
}
此代码完美无缺,但如何在纯JavaScript中编写?我主要对此感兴趣:如何在没有jQuery的情况下执行这些任务?
对于每一行,找到以6#if(我想要的列)
结尾的输入名称在输入时,获取此输入值并添加到控制台,所以我知道它在那里
input id = "grid#21.125#1,6#if" type="text" value"" name="grid#21.125#1,6#if
oninput = shortDescription(this);
答案 0 :(得分:0)
如果你可以分享一段HTML,我们可以尝试一些东西,那将是很棒的,但目前,这里的代码看起来就像用纯JS编写的那样:
var descriptionInput;
var tbl = document.getElementById('21.125-mrss-cont-none-content')
Array.from(tbl.getElementsByTagName('tr')).forEach(function(tr) {
Array.from(tr.querySelectorAll("input[name$='6#if']")).forEach(function(input) {
input.onkeypress = function(e) {
if (e.keyCode == 13) {
descriptionInput = input.value;
input.value = descriptionInput; // why ??
document.getElementById('__AGIM0:U:1:4:2:1:1::0:14').value = descriptionInput;
}
console.log(descriptionInput);
}
});
});
如果您对querySelectorAll
不满意,可以使用getElementsByTagName
,它会返回一个NodeList,您可以使用Array.from
方法将其转换为数组并使用filter
在名称上查找输入,其名称包含" 6#if"。
由于ID是唯一的,方法getElementsByTageName
或getElementsByTagName
会返回Live HTMLCollection
,因此如果您将这些元素用作唯一变量会更好,所以您赢了&#39 ;请让您的浏览器多次获取它们。
由于我不知道你的元素意味着什么,我会用琐碎的名字命名变量,这里是代码的更好版本:
var descriptionInput;
var tbl = document.getElementById('21.125-mrss-cont-none-content');
var tr1 = tbl.getElementsByTagName('tr');
var el1 = document.getElementById('__AGIM0:U:1:4:2:1:1::0:14');
var inputsInTr = Array.from(tr1).map(function(tr) {
return Array.from(tr.getElementsByTagName('input'));
}).reduce(function(pv, cv) {
return pv.concat(cv);
});
var myInputs = inputsInTr.filter(function(input) {
return input.name.indexOf('6#if') != 0;
});
myInputs.forEach(function(input) {
input.onkeypress = function(e) {
if (e.keyCode == 13) {
descriptionInput = input.value;
el1.value = descriptionInput;
}
console.log(descriptionInput);
}
});
我没有尝试过,希望它没事。
希望它有所帮助, 最好的问候,