
xpath获取同级节点
XPath轴(XPath Axes)可定义某个相对于当前节点的节点集:
1、child 选取当前节点的所有子元素
2、parent 选取当前节点的父节点
3、descendant 选取当前节点的所有后代元素(子、孙等)
4、ancestor 选取当前节点的所有先辈(父、祖父等)
5、descendant-or-self 选取当前节点的所有后代元素(子、孙等)以及当前节点本身
6、ancestor-or-self 选取当前节点的所有先辈(父、祖父等)以及当前节点本身
7、preceding-sibling 选取当前节点之前的所有同级节点
8、following-sibling 选取当前节点之后的所有同级节点
9、preceding 选取文档中当前节点的开始标签之前的所有节点
10、following 选取文档中当前节点的结束标签之后的所有节点
11、self 选取当前节点
12、attribute 选取当前节点的所有属性
13、namespace 选取当前节点的所有命名空间节点
如:要定位当前td同级后的一个td
//td[='text']/following-sibling::td
这个你可能需要一些辅助方法,来帮助定位元素,因为在dom中事件是冒泡的形式到document对象上的,而srcElement一直指向的是当时发生事件的元素,只要一直选择这个元素的父亲元素,就可以匹配到你想要的元素了,比如
<table id="test1"><tbody>
<tr>
<td>click me (#test1)</td>
</tr>
</tbody>
</table>
<table id="test2">
<tbody>
<tr>
<td>click me (#test2)</td>
</tr>
</tbody>
</table>
js:
documentonclick = function(e){e = e || windowevent;
src = etarget || esrcElement;
var table = parents(src , 'table');//这样可以拿到当前点击的这个元素的table
var tr = parents(src , 'tr');//这样拿到当前点击的元素的父亲(tr);
alert(tableid);//table的id
}
//查找父节点
function parents(el , parentName){
var parent = elparentNode;
if(!parent)return null;//如果根本就没有父节点,那么返回null
do{
if(parenttagNametoLowerCase() == parentNametoLowerCase()){
//如果这个就是想要找的节点,就返回这个
//在jq的校验里还可以校验class名称和其它的属性校验等
//这个简化版就直接校验标签名称
return parent;
}
}while(parent = parentparentNode);//递归一直查找父亲的父亲。。
return null;//如果没有找到,也返回null
}
XPath的语法 我们在前面已经提到过 XPath是用来帮助XSLT在XML源文档中查找定位信息的语言 在实际使用过程中 XPath和XSLT总是混在一起使用 在上面一章的语法例子中我们已经有使用到XPath的语法 只是没有明确点出 但W C将它们分成两个标准 所以我们也将它们拆成两章来讲解
XPath的语法
当前位置 寻址 *** 作 运算符 功能函数
当前位置
当我们使用XSLT处理XML源文档是 我们用Context来表示当前正在被模板处理的节点位置 比如xsl:template match= / 语句中表示Context在文档的根(root)节点 我不知道如何准确的翻译Context这个词 它类似于C语言里的指针 表示程序当前运行的位置 理解Context对于正确处理XSL模板非常重要 当您的XSL模板输出的文档和您想要的不一样 最先应该分析的就是Context在哪里 Location Paths是用于设定你想要寻找的Context节点位置 就类似DOS的目录命令 我们看个例子
<xsl:for each select= child::PEOPLE/descendant::PERSON >
其中child::PEOPLE/descendant::PERSON就是XPath语法 这个表达式就是一个Location Paths 代码说明要显示所有PEOPLE元素的子元素和所有PERSON元素的子元素 通常我们会采用更简单的写法
<xsl:for each select= PEOPLE//PERSON >
我们来解释path的两种表示方法 / 和 // / 是表示当前文档的节点 类似DOS目录分割符 例如 /PEOPLE表示选择根节点下的PEOPLE元素 PEOPLE/PERSON表示选择PEOPLE元素下所有的PESON子元素 // 则表示当前文档所有的节点 类似查看整个目录 例如 //PEOPLE表示选择文档中所有的PEOPLE元素 无论它在什么层次 PEOPLE//PERSON表示在PEOPLE元素下所有的PERSON元素 无论它的层次多深
寻址 *** 作
Axis和Predicate是XPath语法中对Location Paths进行定位 *** 作的语法 具体的用法列表如下
Axis语法表 表达式 简写 说明 self 选择当前的节点 例子 : <TD><xsl:value of select= /></TD> 代码表示在当前位置插入当前的节点包含的文本(text)值 parent 选择当前节点的父节点 attribute @ 选择一个元素的所有属性 例子: <TD><xsl:value of select= @PERSONID /></TD> 选择PERSON元素的所有属性 child 选择当前节点的所有子元素 ancestor 选择当前节点的所有父元素(包括父元素的父元素 类推)
Axis帮助我们选择当前节点周围所有的节点 而Predicate则用来定位当前节点内部的元素 表示方法为方括号[]中加表达式 [ Expression ] 具体举例如下:
PERSON[position()= ] 这句代码表示寻找第二个 PERSON 元素
PERSON[starts with(name B )] 这句代码表示寻找所有名称以 B 开头的PERSON元素
运算符
这一节介绍XPath的运算符(Expressions) 列表如下 运算符 说明 and or 就是普通意义的and or = 等于 != 不等于 > >= 大于 大于等于 < <= 小于 小于等于 注意 在XSL文件中 <符号要用< 表示 div 加减乘除 mod 取模 | 两个节点一起计算
功能函数(Functions)
在XPath里有很多功能函数可以帮助我们精确寻找需要的节点
count()功能 作用 统计计数 返回符合条件的节点的个数 举例 <p><xsl:value of select= count(PERSON[name=tom]) /></p> 说明 代码的用途是显示PERSON元素中姓名属性值为tom有几个
number()功能 作用 将属性的值中的文本转换为数值 举例 <p>The number is: <xsl:value of select= number(book/price) /></p> 说明 代码的用途是显示书的价格
substring() 功能 语法 substring(value start length) 作用 截取字符串 举例 <p><xsl:value of select= substring(name ) /></p> 说明 代码的用途是截取name元素的值 从第一个字母开始显示到第三个
sum()功能 作用 求和 举例 <p>Total Price = <xsl:value of select= sum(//price) /></p> 说明 代码的用途是计算所有价格的和
上面这些功能只是XPath语法中的一部分 还有大量的功能函数没有介绍 而且目前XPath的语法仍然在不断发展中 通过这些函数我们可以实现更加复杂的查询和 *** 作
lishixinzhi/Article/program/ASP/201311/21862
你的意思是点击Button删除表格的一行信息!
首先在方法开始的时候获得整个表格的dom信息
然后在用this传值到方法中获得当前行的信息
最后用获取到的表格deleterow(获取到的行的值);
参考代码:
function Remove(fontobj){
var obj=$('#myTable');
var n=fontobjparentNodeparentNodeparentNoderowIndex;
objdeleteRow(n);
}
不太明白你要问的问题是什么,但是var td_="";var tr_="";这两个是定义的变量,因为js是弱类型语言,所以修饰变量的不会是int或是String或是其他的,只会是var
selectjsp,在addjsp上面有一个请选择按钮,点击请选择按钮后,d出selectjsp页面,这个页面上是从数据库中遍历的企业,选中一条数据,点击确认,selectjsp页面关闭,并将结果带到addjsp请选择前面的文本框里面。
但name里的对象里要包含一个list,一般像你这种table的在后台肯定返回的是list集合把,所以用logic标签循环显示就行的 。
<logiciterate id这里的名字是随意 只是在下面调用而已aList name后台返回给前台的对象比如page propertylist这里必须是list因为表示循环对象是list集合类型的indexId,indx>。
<tr class=ChangeLineColor height20>。
<td align=center><%=indx+1%></td>。
<td>,aListproductCode<,td>,alist。要的字段名字。
<td>,aListfstCustomerName<,td>。
至于你是返回的直接是一个对象包含list集合的还是直接一个list,看你自己情况,改就行的。
以上就是关于XPATH节点获取全部的内容,包括:XPATH节点获取、JS问题event.srcElement.tagName.toLowerCase() == "td"、XPath语法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)