Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果字符串参数等于div的文本,如何隐藏最近的标签_Javascript_Jquery - Fatal编程技术网

Javascript 如果字符串参数等于div的文本,如何隐藏最近的标签

Javascript 如果字符串参数等于div的文本,如何隐藏最近的标签,javascript,jquery,Javascript,Jquery,如果div.level中的文本等于variabledlevel中的文本,我想隐藏与该div最近的标签 我无法直接编辑HTML,它是由软件自动创建的,因此我无法在div.level中编辑文本。变量“dlevel”实际上是从URL参数中拉入的。我可以更改此参数(“dlevel”的值),因为它可能存在包含“$”的问题。但是,这需要是通用的,以便如果参数为50,则50的标签将隐藏,而不是500的标签,反之亦然。任何帮助都将不胜感激 var-dlevel='$50'; $('div.level').fi

如果
div.level
中的文本等于variable
dlevel
中的文本,我想隐藏与该div最近的标签

我无法直接编辑HTML,它是由软件自动创建的,因此我无法在div.level中编辑文本。变量“dlevel”实际上是从URL参数中拉入的。我可以更改此参数(“dlevel”的值),因为它可能存在包含“$”的问题。但是,这需要是通用的,以便如果参数为50,则50的标签将隐藏,而不是500的标签,反之亦然。任何帮助都将不胜感激

var-dlevel='$50';
$('div.level').filter(函数(){
返回$(this).text()==dlevel;
}).closest('label').hide()

$50
$100
$500

我认为您使用了错误的方法

您可以使用jQuery
each()
循环遍历div
.level
,并获取每个div的
textContent

然后,您只需检查文本是否等于
dlevel
的值,如果是,则使用
closest()
(遍历DOM)获取最近的标签并将其隐藏

var-dlevel='$50';
$('div.level')。每个(函数(){
设text=this.textContent.trim();//或this.innerText.trim()
if(text==dlevel){
$(this).closest('label').hide()
}
});

$50
$100
$500
试试$(this).text().trim()==dlevel

试着像这样使用
each()
。您还需要使用
trim()
删除空白。您可以使用
parent()
查找每个
.level
的标签父项,只要标签始终是父项

let dlevel=“$50”;
$('div.level')。每个(函数(){
if($(this).text().trim()==dlevel){
$(this.parent().hide())
}
});

$50
$100
$500

使用
$尝试以下操作。每个

var-dlevel=“$50”;
$.each($('div.level'),函数(i,val){
如果($(val).text().trim()==dlevel)
{
$(val).closest('label').hide();
}
}); 

$50
$100
$500

我建议使用.text()代替.text内容。是的,这是另一种获取文本的方式,提问者可以选择。这不是选择,而是什么更好。text()将具有更高的跨浏览器兼容性。请,总是在回答问题时,尝试向提问者解释她为什么应该“尝试这个”。请,总是在回答问题时,尝试向提问者解释她为什么应该在我测试代码时“尝试这个”。$(this)。text()周围有空格,因此它不会返回true。我只是用trim()删除多余的空间。