最近在处理一个DIV中的树形选项时,发现用firebug的定位工具无法选中里面的每个单项,只能定位到DIV层。原来我想的是通过每个复选框的标签值来区别不同的复选框,从而实现通过参数动态定位到想选中的复选框。但是通过查看html发现复选框的text并不在这个input里面,而是
<input id=xx,name=xx,...,type="checkbox">text<br>
如果一个input外面有一个其他元素如td,那么可以通过获得td的text来区别每个input。但是这个是一个DIV下包含多个如上的input,而且每个input的属性值都相同,如下:
<div id=xx,....>
<input id=xx,name=xx,...,type="checkbox">text<br>
<input id=xx,name=xx,...,type="checkbox">text<br>
<input id=xx,name=xx,...,type="checkbox">text<br>
<input id=xx,name=xx,...,type="checkbox">text<br>
......
所以没法通过不同的input id或者name来区别。而直接使用xpath的text()方法也没法获取。
但是通过xpath 我们可以唯一确定这个div的位置,于是先获得div的innerHTML,再将获得的html用split,将每个input的text放入一个数组中。这样传入的参数就是这个数组的值,从而获得这个数组的index,而这个数组的index也同样是每个input checkbox的index,这样也就可以通过index来定位不同的checkbox。思路就是这样,具体的实现的代码我就不细说了。