Less.Html 示例一:获取嵌套元素中的正确内容

原创 2017年06月19日 13:53:29

这个示例来源于这个帖子 http://bbs.csdn.net/topics/392175840,需要获取内容的 html 如下:

<table>
  <tr>
    <td>姓名</td>
    <td>学号</td>
    <td>学分</td>
  </tr>
  <tr>
    <td>张三</td>
    <td>
        <table>
            <tr>
              <td>201505047</td>
            </tr>
          </table>
      </td>
    <td>52</td>
  </tr>
  <tr>
    <td>李四</td>
    <td>
        <table>
            <tr>
              <td>201502072</td>
            </tr>
          </table>
    </td>
    <td>65</td>
  </tr>
</table>

楼主通过循环 td 元素的方式来获取内容,但是因为学号的内容是嵌套在 td 的 table 里面的,会被获取到两次。

如果使用 Less.Html,可以这样写:

foreach (Element i in q("td"))
{
    if (!q(i).find("table").hasElement)
    {
        Console.WriteLine(i.textContent);
    }
}

代码是很简短的,同样是循环,在循环里面检查一下 td 是否有嵌套的 table 就行了。Less.Html 最大程度上模仿了 jQuery 的语法,为查找元素提供更多的便利。运行结果如下:

我原来在帖子的回答中,并没有处理重复的学号,现在更正这一点。

本示例代码:GitHub    码云

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

JQ获取html元素的内容

JQ获取html元素的内容

在WebView上正确显示HTML内容

在WebView上显示HTML内容,包括英文以及中文。有3种方法可以有用: (1)使用loadData方法。 这种方法需要先将HTML内容进行编码,否则显示的中文会有乱码。 编码方法为: ...

javascript访问html元素的内容(1)

形如如下格式的html元素:I'm BIG panda!!!有3种方式获取其内容,可以获取起全部的子内容,或是获取其子内容的text纯文本标识,或是以对象方式获取其子内容。可以使用元素对象的inner...
  • mydo
  • mydo
  • 2015-03-26 09:44
  • 688

html中嵌入内容的元素总结

img——在html文档里嵌入图像; a元素里使用img——创建基于图像的超链接; 将img或object与map和area结合使用——创建客户端分区响应图; iframe——嵌入另一张html文档;...

AngularJS实现一个HTML元素内容可编辑指令

有时我们想让用户可编辑元素某个属性内容,比如自定义数据名称,所以在此实现一个简易的指令my-editable先看效果吧: 指令代码:.directive('myEditable', function...

Extjs框架html5中input、textarea的placeholder,元素内容为空时,颜色为灰色

前端Extjs框架,使用input、textarea的属性placeholder,当元素内容为空,显示placeholder对应的值。 在Google、Firefox都显示为灰色,但是在IE11...

千呼万唤 HTML 5 (3) - 内容分组元素

原文地址:http://www.cnblogs.com/webabcd/archive/2011/09/22/2184684.html 作者:webabcd 介绍 HTM...

html中组织内容的元素总结

p——表示段落; div——将全局属性应用到一片内容上,但不表示任何其他内容分组; pre——保留html文档中的布局; blockquote——表示引自他处的内容; hr——表示段落级别的主题转变...

Javascript:Dom简介(查找/修改HTML元素的内容及属性)

Javascript:Dom简介(查找/修改HTML元素的内容及属性)
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)