
请问是获取单个checkbox还是获取一个集合:
1、获取单个checkbox的情况:在checkbox上面确定一个id,然后用documentgetElementsById就能够获取到这个元素;这只是单个的,但是checkbox肯定不是单个的;(我就先说下这个情况,勿喷);
2、获取一个checkbox集合:在每个checkbox设定统一的class,然后定义一个集合(例:var colList = documentgetElementsByClassName("{这里需要填写的是class的名称}")),因为通过class得到的就算是一个值也是数组,所以要循环这个数组,循环数为之前定义colListlength,这样就能得到所要获取的标签了(同样getElementsByTagName方法得到的也是一个数组,也得用这个方法来循环)
如果不懂,可以追问,我给你例子
另一个简单点的方法是,假如HTML里面有个文本框是
<input type="text" class="body_normal" id="TESTID" value="TEXTBOX" />
则VBNET里写
text=webDocumentGetElementById("TESTID")GetAttribute("value")
则得到text="TEXTBOX"
可以使用document对象的getElementById()方法来获取Web页面中的指定对象。
例如,如果要获取一个id为“myDiv”的div元素,可以使用以下代码:
var myDiv = documentgetElementById("myDiv");
在这段代码中,我们首先定义了一个变量myDiv,然后使用document对象的getElementById()方法来获取Web页面中id为“myDiv”的div元素。最后,我们将获取到的div元素存储在myDiv变量中。
除了getElementById()方法,document对象还提供了其他用于获取Web页面中的对象的方法。例如,可以使用getElementsByTagName()方法来获取Web页面中所有指定标签名的对象,使用getElementsByClassName()方法来获取Web页面中所有指定类名的对象,以及使用querySelector()和querySelectorAll()方法来获取Web页面中符合指定条件的对象。
原生JS有3种方式来获取元素:
getElementById('id') getElementsByName('name') getElementsByTagName('tag') getElementById是获取元素最快的方式,但我们不能给每个HTML元素都加以ID吧,所以我们需要一个很方便的通过className来获取元素 function getElementsByClassName(className,tagName){ var ele=[],all=documentgetElementsByTagName(tagName||""); for(var i=0;i<alllength;i++){ if(all[i]className==className){ ele[elelength]=all[i]; } } return ele; } consolelog(getElementsByClassName("entry")); consolelog(getElementsByClassName("entry","div"));
实现原理很简单,通过getElementsByTagName获取到一个元素集合,如果传入了tagname这个参数就根据传入的
tagname来获取,否则获取所有的元素,然后再一个一个元素来匹配classname是否相等
上面这个方法很粗糙,能实现我们的基本需求,如果我们要获取的元素有多个 classname怎么办
明显通过className==是不行了
所以我们只要把上面两篇文章的hasclass函数搬过来就OK了,我们再次来改造下我们的getElementsByClassName函数
function getElementsByClassName(className,tagName){ var ele=[],all=documentgetElementsByTagName(tagName||""); for(var i=0;i<alllength;i++){ if(all[i]classNameclassNamematch(new RegExp('(\\s|^)'+cls+'(\\s|$)'))){ ele[elelength]=all[i]; } } return ele; }
这样就能处理一个元素含有多个classname的情况了
1 通过顶层document节点获取:
(1)
documentgetElementById(elementId):该方法通过节点的ID,可以准确获得需要的元素,是比较简单快捷的方法。如果页面上含有多个相同id的节点,那么只返回第一个节点。
如今,已经出现了如prototype、Mootools等多个JavaScript库,它们提供了更简便的方法:$(id),参数仍然是节点的id。这个方法可以看作是documentgetElementById()的另外一种写法,不过$()的功能更为强大,具体用法可以参考它们各自的API文档。
(2)documentgetElementsByName(elementName):该方法是通过节点的
name获取节点,从名字可以看出,这个方法返回的不是一个节点元素,而是具有同样名称的节点数组。然后,我们可以通过要获取节点的某个属性来循环判断是否为需要的节点。
例如:在HTML中checkbox和radio都是通过相同的name属性值,来标识一个组内的元素。如果我们现在要获取被选中的元素,首先获取改组元素,然后循环判断是节点的checked属性值是否为true即可。
(3)documentgetElementsByTagName(tagName):该方法是通过节点的Tag获取节点,同样该方法也是返回一个数组,例如:documentgetElementsByTagName('A')将会返回页面上所有超链接节点。在获取节点之前,一般都是知道节点的类型的,所以使用该方法比较简单。但是缺点也是显而易见,那就是返回的数组可能十分庞大,这样就会浪费很多时间。那么,这个方法是不是就没有用处了呢?当然不是,这个方法和上面的两个不同,它不是document节点的专有方法,还可以应用其他的节点,下面将会提到。
2、通过父节点获取:
(1)parentObjfirstChild:如果节点为已知节点(parentObj)的第一个子节点就可以使用这个方法。这个属性是可以递归使用的,也就是支持
parentObjfirstChildfirstChildfirstChild的形式,如此就可以获得更深层次的节点。
(2)parentObjlastChild:很显然,这个属性是获取已知节点(parentObj)的最后一个子节点。与firstChild一样,它也可以递归使用。
在使用中,如果我们把二者结合起来,那么将会达到更加令人兴奋的效果,即:parentObjfirstChildlastChildlastChild
(3)parentObjchildNodes:获取已知节点的子节点数组,然后可以通过循环或者索引找到需要的节点。
注意:经测试发现,在IE7上获取的是直接子节点的数组,而在Firefox20011上获取的是所有子节点即包括子节点的子节点。
(4)parentObjchildren:获取已知节点的直接子节点数组。注意:经测试,在IE7上,和childNodes效果一样,而Firefox20011不支持。这也是为什么我要使用和其他方法不同样式的原因。因此不建议使用。
(5)parentObjgetElementsByTagName(tagName):使用方法不再赘述,它返回已知节点的所有子节点中类型为指定值的子节点数组。例如:parentObjgetElementsByTagName('A')返回已知的子节点中的所有超链接。
3、通过临近节点获取:
(1)neighbourNodepreviousSibling:获取已知节点(neighbourNode)的前一个节点,这个属性和前面的firstChild、lastChild一样都似乎可以递归使用的。
(2)neighbourNodenextSibling:获取已知节点(neighbourNode)的下一个节点,同样支持递归。
4、通过子节点获取:
(1)childNodeparentNode:获取已知节点的父节点。
以上就是关于document.getElementsByTagName获取js写的一个页面里面的标签全部的内容,包括:document.getElementsByTagName获取js写的一个页面里面的标签、vb.net的Webbrowser1.Document通过GetElementsByTagName("a"),如何获取标签中的全部文字内容、使用document对象的什么方法可以获取web中的对象等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)