`

js精确控制tr

    博客分类:
  • js
 
阅读更多
在写了很多js后,会发现在js中总会出现各种各样奇怪的问题,主要的问题是不能获得所需要的对象.
一般来说,我们所需要获得的对象有几种办法获得:
1. ID 法,通过使用document.getElementById()这个方法获得用户所需的对象,你只需要在标签中加入id="yourIdName"这样的属性,你就可以用这个方法获得这个对象了.举个例子来说:有如下代码
<table><tr id='zergTr'><td>这里是zergpest的第一行</td></tr></table>
那么我们要获得这个tr,并且设置这个tr为不可见,应该这样做.请看如下代码:
<script type="text/javascript">
      var zergpest = document.getElementById("zergTr");
      zergpest.style.display = "none";
</script>
这样就可以通过使用document.getElementById() 这个方法来获得改对象,并且设置该对象为不可见.
但是,如果我们需要设置多个具有同样ID的对象不可见的时候,这个方法就不能用了,因为无论你怎么为后面的<tr>标签添加id属性,用document.getElementById()这个方法获得的只能是第一个具有该ID的对象,其实其他的ID这时候应该是属于伪Id了.你所要操作的只能操作到第一个具有该ID的对象,而不是具有所有你所设置的具有该ID的对象.那么这时候我们该怎么办呢,请看第2种方法.
2.Name法,通过使用document.getElementsByName()这个方法获得用户所需的对象,你需要做的是在标签中加入name="yourname"这样的属性,道理上说你就可以使用该方法获得该对象了.然而,有些时候确不是这样的,document.getElementsByName()这个方法其实主要是针对form标签中的对象有用,在form标签以外的对象就不一定有用了,这里说的不一定,是说有时候有用,有时候没有用.不过也可能和我用的IE7 beta3 有关,没有深入研究过.举个例子了说,有如下代码.
<table><tr name='zergTr'><td>这里是zergpest的第一行</td></tr></table>
<table><tr name='zergTr'><td>这里是zergpest的第二行</td></tr></table>
我们这里有二个相同的name,因为这个方法是获取具有多个name的,如果只有一个name的话,那么建议你用ID法来获取,而不要用这种,不然的话你需要进行判断length值.
我们可以用如下代码来获取该对象,并且设置该对象为不可见,代码如下:
<script type="text/javascript">
    var zergpest = document.getElementsByName("zergTr");
    if (!zergpest.length)
    {
          zergpest.style.display = "none";
     }
     else
    {
          for (var i=0;i<zergpest.length;i++)
          {
               zergpest[i].style.display = "none";
          }
     }
</script>
这样,道理上我们应该可以设置所有name值为zergTr的对象为不可见了,可是事实往往并不能如你所希望的,如果我们在<tr>前面加个<form>标签,那么结果就可以得到你所需要的结果了,但没有form标签的话,结果是有时候可以正确,有时候不正确,甚至不能获得对象.这时候,我们用第3种方法来解决,这就是轩辕的JS对象大招了.
3.超级Name大法,通过使用document.documentElement.getElementsByTagName()这个方法结合name法来获得这些你所需要的对象.还是用刚才的例子.如下:
<table><tr name='zergTr'><td>这里是zergpest的第一行</td></tr></table>
<table><tr name='zergTr'><td>这里是zergpest的第二行</td></tr></table>
这里我们需要设置该<tr>标签为不可见,而也不希望加上看着很不愉快的<form>标签,这时我们就需要用如下代码:
<script type="text/javascript">
    var zergpest = document.documentElement.getElementsByTagName("tr");
    if (!zergpest.length)
    {
        zergpest.style.display == "none";
    }
    else
    {
        var realZerg = [];
        for (var i=0;i<zergpest.length;i++)
        {
             if (zergpest[i].name == "zergTr")
            {
                realZerg.push(zergpest[i]);
            }
        }
        if (realZerg.length)
        {
            for (var j=0;j<realZerg.length;j++)
            {
                realZerg[j].style.display = "none";
            }
        }
    }
</script>
这样就可以把所有name值等于yourname这样的多个对象设置为不可见了,这就是轩辕的超级Name大法,:),不要觉得用了2个for会牺牲性能,占用用户的cpu,其实现在用户的cpu最少都是1.5GHz以上,这点小运算对CPU来说根本就是骆驼身上的一个细胞,而且用户的cpu闲着也是闲着,既然对他供着电,那就让他做点事情吧.:)这3种方法各有好处,按照不同的需要可以选择不同的方法.终究会达到js所需要的目的.


分享到:
评论

相关推荐

    js实现日历控件精确到时分秒

    本教程将详细讲解如何使用JavaScript实现一个精确到时分秒的日历控件,并关注其兼容性和实用性。 首先,"js实现日历控件"通常涉及到DOM操作、事件处理、日期对象处理等多个JavaScript核心概念。在创建日历控件时,...

    上下左右键控制table中光标(兼容多浏览器)

    本文将详细讲解如何使用JavaScript实现输入框内上下左右键以及Enter键控制表格(table)中的光标移动,并在光标到达最后一个输入框时新增一行,确保这个功能在多个浏览器中都能正常工作。 首先,我们需要理解...

    js监听鼠标事件控制textarea输入字符串的个数.docx

    总之,通过JavaScript的事件监听机制,我们可以精确控制用户在`textarea`中的输入,不仅可以限制字符数,还能实现各种复杂的交互功能。理解并熟练应用这些事件,对于提升网页的用户体验至关重要。

    用js作表格的表头斜线

    本示例探讨如何使用JavaScript(js)来实现这一功能。JavaScript是一种强大的客户端脚本语言,它允许我们在用户的浏览器上动态地创建和修改HTML元素,包括表格。 首先,我们需要一个基本的HTML结构,用于展示我们的...

    js 操作table之 移动TR位置 兼容FF 跟 IE

    - 代码段中有`[Ctrl+A全选注:如需引入外部Js需刷新才能执行]`的注释,这可能表明了在使用这段脚本之前,需要全选代码然后复制粘贴到浏览器控制台执行,或者需要引入外部的JavaScript库。 - 文档的编码格式是`...

    韩顺平_轻松搞定网页设计html+(DIV+CSS)+javascript

    CSS允许更精确地控制颜色(如`color:yellow`)、字体大小和样式,以及页面的整体布局。例如,通过`&lt;img&gt;`标签的`width`和`height`属性可以调整图片尺寸,`border`属性添加边框。 3. JavaScript: JavaScript是一种...

    TR基于HTML5和CSS3标准开发,在Google Chrome上使用能获得最佳体验.zip

    4. **Canvas画布**:提供了JavaScript进行动态图形绘制,可以实现丰富的2D图形和动画效果。 5. **SVG矢量图**:用于创建高质量的可缩放图形,适用于图标和复杂图像。 6. **拖放功能**:通过`draggable`属性和拖放API...

    JavaScript控制table某列不显示的方法

    JavaScript控制列隐藏的方法中,通过JavaScript代码动态地改变CSS属性来实现列的隐藏。例如,".css("display","none")"方法被用来将选定的单元格(td)设置为不显示。 而核心知识点是使用jQuery来控制表格中特定列...

    JS点名系统

    通过选择器(如类选择器 `.class` 或 ID 选择器 `#id`),可以精确控制各个元素的样式。同时,CSS3还提供了动画效果,可以为点名过程添加动态感,如高亮选中的学生名字。 3. **JavaScript**:JavaScript是这个点名...

    html&css&js

    通过定义颜色、字体、大小、位置等属性,CSS让开发者能够精确地控制页面元素的外观。 #### CSS规则 CSS规则由选择器和声明块组成。选择器指向要应用样式的HTML元素,而声明块包含了具体的样式规则,如: ```css ...

    ie9崩溃现象当js设置tr元素样式为display:none

    在IE9浏览器中,当通过JavaScript动态地将表格中的行元素(tr元素)的display样式设置为"none"时,浏览器会发生崩溃。这个现象涉及到浏览器渲染机制和JavaScript的交互,尤其在IE浏览器中较为常见,尤其是在处理表格...

    精美的css控制表格样式

    `cellspacing`和`cellpadding`属性在HTML中也能设置单元格之间的空间,但在CSS中,可以使用`padding`和`margin`属性更精确地控制。 3. **背景色与文字样式**:利用`background-color`可以改变表格、行或单元格的...

    JavaScript笔记

    精确查找某个ID的元素:document.getElementById(id名); 9.null和undefined: |--null:一个特殊的值,表示“无值”--空对象。数据类型为Object |--undefined:表示声明了变量但从未赋值或者对象属性不存在 10...

    常用js

    document.getElementById("newsmoreid").innerHTML='&lt;tr&gt;&lt;td&gt;IEtbodyinnerHTMLֻ&lt;/td&gt;&lt;/tr&gt;'; ``` **解析:** - `document.getElementById` 方法用于获取ID指定的元素。 - `.href` 属性用于设置或返回被选元素的`...

    js圆角框组件(图片)

    总的来说,"js圆角框组件(图片)"这个知识点涵盖了使用CSS3的`border-radius`属性和JavaScript实现圆角效果的方法。在实际开发中,开发者应根据目标用户的浏览器兼容性需求来选择合适的技术。对于新项目,优先考虑...

    Web前端开发项目教程(HTML5+CSS3+JavaScript)全册习题参考答案.docx

    例如,CSS3支持选择器的增强,可以更精确地定位元素,如nth-child(),还有伪类如:hover和:checked。它还引入了边框半径、渐变、阴影、动画和转换等视觉效果,以及新的布局模式如Flexbox和Grid。 【JavaScript】 ...

    横直滚动图片+文字说明代码

    每个单元格内部又嵌套了一个`&lt;table&gt;`,用于精确控制图片和文字的位置和样式: ```html &lt;tr&gt; ˮɫ۾" width="128" height="149"/&gt; &lt;/tr&gt; &lt;tr&gt; GEOˮ &lt;/tr&gt; ``` #### CSS样式应用 为了实现滚动...

    起步Bex5获取gridtr的id和滚动条定位

    在许多场景下,我们需要对Grid中的滚动条进行精确控制,例如,在用户执行某些操作后需要自动滚动到特定位置显示相关数据。以下是一段示例代码,展示了如何通过JavaScript来实现这一功能: ```javascript Model....

    CSS.HTML.Javascript(语法)

    5. **盒模型**:理解盒模型(content、padding、border、margin)对于精确布局至关重要。 6. **响应式设计**:使用媒体查询(media queries)实现不同设备和屏幕尺寸下的样式适配。 【HTML】 HTML,全称超文本标记...

    Csv-formatting:使用Paparse的小js脚本将csv格式化为精确的html格式

    在本教程中,我们将探讨如何使用Papaparse库,一个轻量级的JavaScript库,将CSV数据转换为精确的HTML格式。 Papaparse是一个强大的CSV解析和导出库,支持在浏览器和Node.js环境中运行。它的主要功能包括: 1. **...

Global site tag (gtag.js) - Google Analytics