Javascript 如果没有匹配的内容,请删除元素及其值
如果div第1列中的值“banana”与第2列中的任何值都不匹配,我将尝试删除该值及其元素“li”,但如果存在匹配的值,则不应删除该值 不知道如何使用javascript/jquery实现它 以下是我到目前为止已经开始的内容:Javascript 如果没有匹配的内容,请删除元素及其值,javascript,html,Javascript,Html,如果div第1列中的值“banana”与第2列中的任何值都不匹配,我将尝试删除该值及其元素“li”,但如果存在匹配的值,则不应删除该值 不知道如何使用javascript/jquery实现它 以下是我到目前为止已经开始的内容: <div class="container"> <div class="column1"> <ul> <li>apple</li> <li>ba
<div class="container">
<div class="column1">
<ul>
<li>apple</li>
<li>banana</li> <!-- remove this element along with its value if there is no matching content in column2 -->
<li>orange</li>
<li>lemon</li>
</ul>
</div>
<div class="column2">
<ul>
<li>apple</li>
<li>banana</li>
<li>orange</li>
<li>lemon</li>
</ul>
</div>
</div>
- 苹果
- 香蕉
- 橙色的
- 柠檬
- 苹果
- 香蕉
- 橙色的
- 柠檬
感谢您对我的帮助。解决方案
- 要解决这个问题,首先从第二个列表中获取所有值并将其存储在数组中
- 然后检查第一个列表中的元素,检查第二个列表是否包含此元素,如果不包含,则删除此元素
让compArr=[];
document.queryselectoral('.column2>ul>li').forEach((val)=>{
compArr.push(val.childNodes.item(0.nodeValue));
});
document.queryselectoral('.column1>ul>li').forEach((val,ind)=>{
如果(!compArr.includes(val.childNodes.item(0.nodeValue)){
val.remove();
}
});代码>
- 苹果
- 香蕉
- 橙色的
- 柠檬
- 苹果
- 橙色的
- 柠檬
我想这就是你想要的
function check()
{
var fruitslist1 =document.querySelectorAll(".column1>ul>li");
var fruitslist2 =document.querySelectorAll(".column2>ul>li");
var find = false;
var deletefruit = "banana";
fruitslist2.forEach(fruitslist => {
if(fruitslist.innerHTML==deletefruit) find = true;
});
if(!find)
{
fruitslist1.forEach(fruitslist => {
if(fruitslist.innerHTML==deletefruit) fruitslist.remove();
});
}
}
document.evaluate(“//li[text()='banana']”,document,null,XPathResult.FIRST\u ORDERED\u NODE\u TYPE,null)。singleNodeValue!=感谢您的回复,我尝试将其添加为javascript,但似乎不起作用。我需要使用库才能使其工作吗?感谢您的回复,我尝试使用此函数,但它不工作。我认为您应该调用此函数。它在我的设备上工作啊,是的,我错过了那个部分,现在工作了:)非常感谢!不客气