我正在尝试在 HTML 表格的列中查找特定行,并将出现的特定字符串替换为给定值。
我尝试使用 JQuery 的 .html
但它只是用给定值替换行中的所有内容。 .text().replace()
返回 false。
这是我的代码:
function ReplaceCellContent(find, replace)
{
//$(".export tr td:nth-child(4):contains('" + find + "')").html(function (index, oldHtml) {
// return oldHtml.replace(find, replace);
//});
$(".export tr td:nth-child(4):contains('" + find + "')").text($(this).text().replace(find, replace));
//$(".export tr td:nth-child(4):contains('" + find + "')").html(replace);
}
$('.export tr td:nth-child(4)').each(function () {
var field = $(this).text();
var splitter = field.split(':');
if (splitter[2] === undefined) {
return true;
} else {
var splitter2 = splitter[2].split(',');
}
if (splitter2[0] === undefined) {
return true;
} else {
$.post(appPath + 'api/list/', {action: 'getPW', pw: splitter2[0]})
.done(function (result) {
ReplaceCellContent(splitter2[0], result);
});
}
});
我正在迭代第 4 列的每一行并提取正确的字符串。这是对我的函数进行 AJAX post 调用,该函数返回我想要替换它的新字符串。
splitter2[0] // old value
result // new value
希望有人能帮助我。我对 JS/JQuery 不太了解。
最佳答案
findSmith findJill findJohn
var classes = document.getElementsByClassName("classes");
var replaceCellContent = (find, replace) => {
for (var i = 0; i < classes.length; i++) {
if (classes[i].innerText.includes(find)) {
classes[i].innerText = classes[i].innerText.replace(find, replace);
}
}
}
这会将所有出现的“fill”替换为“look”。 我喜欢使用 vanilla JS,我并不是 JQuery 的真正粉丝,但这肯定应该适用于您的代码。
关于Javascript 子字符串替换为 JQuerys 包含选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56983467/