如果div.level
中的文本等于变量dlevel
中的文本,我想隐藏最接近该div的标签。
我无法直接编辑HTML,它是由软件自动创建的,因此无法编辑div.level中的文本。实际上,变量“ dlevel”是从URL参数中提取的。我可以更改此参数(“ dlevel”的值),因为它包含“ $”可能是一个问题。但是,这需要通用,以便如果参数为50,则隐藏50的标签,而不隐藏500的标签,反之亦然。任何帮助将不胜感激。
var dlevel = '$50';
$('div.level').filter(function () {
return $(this).text() == dlevel;
}).closest('label').hide();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>
<div class="level-container">
<label>
<div class="level">
$50
</div>
</label>
</div>
<div class="level-container">
<label>
<div class="level">
$100
</div>
</label>
</div>
<div class="level-container">
<label>
<div class="level">
$500
</div>
</label>
</div>
答案 0 :(得分:1)
我认为您使用了错误的方法。
您可以使用jQuery .level
遍历div each()
并获取每个div的textContent
。
然后,您要做的就是检查文本是否等于dlevel
的值,如果是,请使用closest()
(遍历DOM)获取最接近的标签并将其隐藏。
var dlevel = '$50';
$('div.level').each(function(){
let text = this.textContent.trim(); //or this.innerText.trim()
if (text == dlevel){
$(this).closest('label').hide()
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>
<div class="level-container">
<label>
<div class="level">
$50
</div>
</label>
</div>
<div class="level-container">
<label>
<div class="level">
$100
</div>
</label>
</div>
<div class="level-container">
<label>
<div class="level">
$500
</div>
</label>
</div>
答案 1 :(得分:0)
尝试$(this).text()。trim()=== dlevel
答案 2 :(得分:0)
尝试像这样使用each()
。您还需要使用trim()
删除空格。您可以使用parent()
查找每个.level
的标签父级,只要标签始终是父级。
let dlevel = "$50";
$('div.level').each( function() {
if ($(this).text().trim() === dlevel) {
$(this).parent().hide()
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>
<div class="level-container">
<label>
<div class="level">
$50
</div>
</label>
</div>
<div class="level-container">
<label>
<div class="level">
$100
</div>
</label>
</div>
<div class="level-container">
<label>
<div class="level">
$500
</div>
</label>
</div>
答案 3 :(得分:0)
尝试使用$.each
var dlevel = "$50";
$.each($('div .level'),function(i,val){
if($(val).text().trim()==dlevel)
{
$(val).closest('label').hide();
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>
<div class="level-container">
<label>
<div class="level">
$50
</div>
</label>
</div>
<div class="level-container">
<label>
<div class="level">
$100
</div>
</label>
</div>
<div class="level-container">
<label>
<div class="level">
$500
</div>
</label>
</div>