gpt4 book ai didi

javascript - 比较 HTML 元素之间文本内容的方法

转载 作者:行者123 更新时间:2023-11-29 18:30:33 25 4
gpt4 key购买 nike

正如标题所说,我正在寻找一种方法来比较一个 HTML 元素的文本内容与另一个 HTML 元素的文本内容,并且只有当它们相同时,才发出消息提示。有什么想法吗?不胜感激!(与代码一起发布):例如,我无法使 remItem 的内容与 headElms[u] 的内容相等。

else if (obj.type == 'checkbox' && obj.checked == false) {
var subPal = document.getElementById('submissionPanel');
var remItem = obj.parentNode.parentNode.childNodes[1].textContent;
alert("You have disselected "+remItem);

for (var j=0; j < checkSum.length; j++) {
if (remItem == checkSum[j]) {
alert("System found a match: "+checkSum[j]+" and deleted it!");
checkSum.splice(j,1);
} else {
//alert("There were no matches in the search!");
}
}
alert("Next are...");
alert("This is the checkSum: "+checkSum);
alert("Worked!!!");

var headElms = subPal.getElementsByTagName('h3');
alert("We found "+headElms.length+" elements!");

for (var u=0; u < headElms.length; u++){
alert("YES!!");
if (remItem == headElms[u].textContent) {
alert("System found a matching element "+headElms[u].textContent+" and deleted it!");
}
else {
alert("NO!!");
alert("This didn't work!");
}
}

}

最佳答案

var a = document.getElementById('a');
var b = document.getElementById('b');

var tc_a = a ? a.textContent || a.innerText : NaN;
var tc_b = b ? b.textContent || b.innerText : NaN;

if( tc_a === tc_b )
alert( 'equal' );

如果一个或两个元素不存在,则使用 NaN 确保返回 false 结果。


如果您不喜欢它的冗长,或者您需要多次执行此操作,请创建一个隐藏大部分工作的函数。

function equalText(id1, id2) {
var a = document.getElementById(id1);
var b = document.getElementById(id2);
return (a ? a.textContent || a.innerText : NaN) ===
(b ? b.textContent || b.innerText : NaN);
}

然后调用它...

if( equalText('a','b') ) 
alert( 'equal' );

要解决您更新的问题,没有足够的信息来确定结果,但这里有一些潜在的问题...

  • obj.parentNode.parentNode.childNodes[1] ...可能在不同的浏览器中给出不同的元素

  • “系统找到一个匹配的元素...并将其删除!” ...如果您要删除元素,则需要在您的u 索引,因为当您将它从 DOM 中删除时,它将从您正在迭代的 NodeList 中删除。因此,您需要在删除元素时递减 u,或者只是反向迭代。

  • .textContent 不支持旧版本的 IE

  • 比较时会考虑空格。因此,如果前导空格和尾随空格不同,则不会被视为匹配。

关于javascript - 比较 HTML 元素之间文本内容的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8888655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com