在写了很多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所需要的目的.
分享到:
相关推荐
本教程将详细讲解如何使用JavaScript实现一个精确到时分秒的日历控件,并关注其兼容性和实用性。 首先,"js实现日历控件"通常涉及到DOM操作、事件处理、日期对象处理等多个JavaScript核心概念。在创建日历控件时,...
本文将详细讲解如何使用JavaScript实现输入框内上下左右键以及Enter键控制表格(table)中的光标移动,并在光标到达最后一个输入框时新增一行,确保这个功能在多个浏览器中都能正常工作。 首先,我们需要理解...
总之,通过JavaScript的事件监听机制,我们可以精确控制用户在`textarea`中的输入,不仅可以限制字符数,还能实现各种复杂的交互功能。理解并熟练应用这些事件,对于提升网页的用户体验至关重要。
本示例探讨如何使用JavaScript(js)来实现这一功能。JavaScript是一种强大的客户端脚本语言,它允许我们在用户的浏览器上动态地创建和修改HTML元素,包括表格。 首先,我们需要一个基本的HTML结构,用于展示我们的...
- 代码段中有`[Ctrl+A全选注:如需引入外部Js需刷新才能执行]`的注释,这可能表明了在使用这段脚本之前,需要全选代码然后复制粘贴到浏览器控制台执行,或者需要引入外部的JavaScript库。 - 文档的编码格式是`...
CSS允许更精确地控制颜色(如`color:yellow`)、字体大小和样式,以及页面的整体布局。例如,通过`<img>`标签的`width`和`height`属性可以调整图片尺寸,`border`属性添加边框。 3. JavaScript: JavaScript是一种...
4. **Canvas画布**:提供了JavaScript进行动态图形绘制,可以实现丰富的2D图形和动画效果。 5. **SVG矢量图**:用于创建高质量的可缩放图形,适用于图标和复杂图像。 6. **拖放功能**:通过`draggable`属性和拖放API...
JavaScript控制列隐藏的方法中,通过JavaScript代码动态地改变CSS属性来实现列的隐藏。例如,".css("display","none")"方法被用来将选定的单元格(td)设置为不显示。 而核心知识点是使用jQuery来控制表格中特定列...
通过选择器(如类选择器 `.class` 或 ID 选择器 `#id`),可以精确控制各个元素的样式。同时,CSS3还提供了动画效果,可以为点名过程添加动态感,如高亮选中的学生名字。 3. **JavaScript**:JavaScript是这个点名...
通过定义颜色、字体、大小、位置等属性,CSS让开发者能够精确地控制页面元素的外观。 #### CSS规则 CSS规则由选择器和声明块组成。选择器指向要应用样式的HTML元素,而声明块包含了具体的样式规则,如: ```css ...
在IE9浏览器中,当通过JavaScript动态地将表格中的行元素(tr元素)的display样式设置为"none"时,浏览器会发生崩溃。这个现象涉及到浏览器渲染机制和JavaScript的交互,尤其在IE浏览器中较为常见,尤其是在处理表格...
`cellspacing`和`cellpadding`属性在HTML中也能设置单元格之间的空间,但在CSS中,可以使用`padding`和`margin`属性更精确地控制。 3. **背景色与文字样式**:利用`background-color`可以改变表格、行或单元格的...
精确查找某个ID的元素:document.getElementById(id名); 9.null和undefined: |--null:一个特殊的值,表示“无值”--空对象。数据类型为Object |--undefined:表示声明了变量但从未赋值或者对象属性不存在 10...
document.getElementById("newsmoreid").innerHTML='<tr><td>IEtbodyinnerHTMLֻ</td></tr>'; ``` **解析:** - `document.getElementById` 方法用于获取ID指定的元素。 - `.href` 属性用于设置或返回被选元素的`...
总的来说,"js圆角框组件(图片)"这个知识点涵盖了使用CSS3的`border-radius`属性和JavaScript实现圆角效果的方法。在实际开发中,开发者应根据目标用户的浏览器兼容性需求来选择合适的技术。对于新项目,优先考虑...
例如,CSS3支持选择器的增强,可以更精确地定位元素,如nth-child(),还有伪类如:hover和:checked。它还引入了边框半径、渐变、阴影、动画和转换等视觉效果,以及新的布局模式如Flexbox和Grid。 【JavaScript】 ...
每个单元格内部又嵌套了一个`<table>`,用于精确控制图片和文字的位置和样式: ```html <tr> ˮɫ۾" width="128" height="149"/> </tr> <tr> GEOˮ </tr> ``` #### CSS样式应用 为了实现滚动...
在许多场景下,我们需要对Grid中的滚动条进行精确控制,例如,在用户执行某些操作后需要自动滚动到特定位置显示相关数据。以下是一段示例代码,展示了如何通过JavaScript来实现这一功能: ```javascript Model....
5. **盒模型**:理解盒模型(content、padding、border、margin)对于精确布局至关重要。 6. **响应式设计**:使用媒体查询(media queries)实现不同设备和屏幕尺寸下的样式适配。 【HTML】 HTML,全称超文本标记...
在本教程中,我们将探讨如何使用Papaparse库,一个轻量级的JavaScript库,将CSV数据转换为精确的HTML格式。 Papaparse是一个强大的CSV解析和导出库,支持在浏览器和Node.js环境中运行。它的主要功能包括: 1. **...