我正在尝试在HTML表的列中查找特定行,并使用给定值替换特定字符串的出现。
我尝试使用JQuery的.html
,但是它只是将行中的所有内容替换为给定值。一个.text().replace()
向我返回了错误。
这是我的代码:
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发布调用来完成的,该调用返回我要替换为新字符串的字符串。
splitter2[0] // old value
result // new value
我希望有人能帮助我。我对JS / JQuery没那么深入。
答案 0 :(得分:1)
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);
}
}
}
这会将所有“填充”事件替换为“外观”。 我喜欢使用香草JS,我并不是JQuery的狂热者,但这肯定可以在您的代码上使用。
答案 1 :(得分:0)
说给所有表行一个类名“ trClasses”
var rows = document.getElementsByClassName("trClasses");
for (var I = 0; I < rows.length; I++) {
rows.innerText.replace("yourText");
}
innerText属性将返回HTML标记中的文本。
我也是新手,但这应该可行。祝您编码愉快!
答案 2 :(得分:0)
这样做:
var tds = $("td");
for( var i = 0; i < tds.length ; i++){
if ( $(tds[i]).text().includes("abc") ){
var replacetext = $(tds[i]).text().replace("abc", "test");
$(tds[i]).text(replacetext);
}
}