jQuery - 呈现HTML上的ForEach函数

时间:2018-01-04 15:03:21

标签: javascript jquery asp.net foreach innerhtml

我有以下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类而不是。

再次感谢你......

1 个答案:

答案 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>