我有以下JS / jQuery,它抓取ASP DetailsView控件(呈现的HTML)的单元格值,检查它是否有条件,并根据所述条件隐藏div。它基本上是检查单元格值是否格式化为IP地址......
$(document).ready(function () {
//Grab innerHTML in the IPAddress cell from DetailsView1
//See if it contains the characters: 10.
//If it does not contain '10.', hide the parent div for that user
var ip = document.getElementById("DetailsView1").rows[3].cells[0].innerHTML;
var addrFormat = ip.includes("10.");
if (addrFormat == false) {
$("#IDofDetailsView1ParentDiv").hide();
}
});
这很好用,但是我需要检查几个DetailsView控件,并且可能通过ID检查.hide()几个元素。
在JS / jQuery中,有没有办法:
ForEach渲染HTML元素,如DetailsView,检查格式条件,然后仅为此控件隐藏父div,如果条件为false
感谢您的任何建议。
编辑显示标记
以下是我正在使用的呈现HTML ...
<div class="square" id="myId">
<div class="content">
<div><p id="myId2">Unavailable for Dispatch</p>
<div class="table">
<div class="table-cell">
<div id="UpdatePanel1">
<div>
<table class="Grid" cellspacing="0" rules="all" border="1" id="DetailsView1" style="border-collapse:collapse;">
<tr align="center">
<td colspan="2" style="border-style:None;">Text1</td>
</tr><tr align="center">
<td class="building" colspan="2" style="border-style:None;">Text2</td>
</tr><tr align="center">
<td colspan="2" style="border-style:None;">Text3</td>
</tr><tr align="center">
<td class="hide" colspan="2" style="border-style:None;">Text4</td>
</tr><tr align="center">
<td class="hide" colspan="2">Text5</td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
我的页面上有几个。现在我正在使用:
var ip = document.getElementById("DetailsView1").rows[3].cells[0].innerHTML;
但我可能需要在&#34; Grid&#34;上使用类选择器。一次处理它们,对吗?
然后我需要通过id隐藏最高的div,而不是最近的父级。但只能隐藏那些td&#39; Text 4&#39;价值是假的。我不知道如何获取我目前从&#34; DetailsView1&#34;获取的innerHTML,如果我使用Grid类而不是。
再次感谢你......
答案 0 :(得分:0)
使用每个,然后使用'this'来定位单个元素。
编辑:不得不编辑它并删除includes(),因为它在很多浏览器中都不起作用。现在我将所有.Grid元素的HTML转换为String(),然后在该字符串上使用indexOf()来确定它是否包含10。
新工作小提琴: https://jsfiddle.net/Lh5kenge/
更新代码:
<td><span>[
{
"@id": "/client_addresses/3",
"@type": "http://schema.org/Thing",
"address": {
"@id": "/addresses/3",
"@type": "http://schema.org/Thing",
"address": "niet meer gebruiken"
}
}
</span></td>