
id选择器也是基本的选择器,jQuery内部使用JavaScript函数documentgetElementById()来处理ID的获取。原生语法的支持总是非常高效的,所以在 *** 作DOM的获取上,如果能采用id的话尽然考虑用这个选择器
值得注意:
id是唯一的,每个id值在一个页面中只能使用一次。如果多个元素分配了相同的id,将只匹配该id选择集合的第一个DOM元素。但这种行为不应该发生;有超过一个元素的页面使用相同的id是无效的
类选择器,顾名思义,通过class样式类名来获取节点
描述:
类选择器,相对id选择器来说,效率相对会低一点,但是优势就是可以多选
元素选择器
元素选择器:根据给定(html)标记名称选择所有的元素
描述:
全选择器
抛开jQuery,如果要获取文档中所有的元素,通过documentgetElementsByTagName()中传递""同样可以获取到
不难发现,id、class、tag都可以通过原生的方法获取到对应的节点,但是我们还需要考虑一个兼容性的问题,我这里顺便提及一下,比如:
IE会将注释节点实现为元素,所以在IE中调用getElementsByTagName里面会包含注释节点,这个通常是不应该的
getElementById的参数在IE8及较低的版本不区分大小写
IE7及较低的版本中,表单元素中,如果表单A的name属性名用了另一个元素B的ID名并且A在B之前,那么getElementById会选中A
IE8及较低的版本,浏览器不支持getElementsByClassName
不知道问题指的是什么路径,这里回答一个获得JTree实现的文件树的某一节点文件路径的例子,希望能有帮助。
重写节点类的toString(),在TreeSelectionListener中获取当前节点对象,这时候toString()就是当前路径:
DefaultMutableTreeNode mutableTreeNode=(DefaultMutableTreeNode)getLastSelectedPathComponent();String chooseUrl=mutableTreeNodetoString();
当然,这时候节点Node类也得自定义,比如这样:
class FileNode{public boolean isInit;
public boolean isSystemRoot;
public String name;
public Icon icon;
public String filePath;
public FileNode(String name,Icon icon,String filePath,boolean isSystemRoot){
thisname=name;thisicon=icon;thisfilePath=filePath;thisisSystemRoot=isSystemRoot;
}
//重写toString获取当前节点路径
@Override
public String toString(){
return thisfilePath;
}
}
我用的java
List att = xmlConfiggetList("//permission[@module="609"]/@idEnable");
for(int i=0; i<attsize(); i++)
{
String value = ((Attribute)attget(i))getValue();
}
1、用 childNodes 属性,按顺序取
实现过程:首先创建一个 xml 对象,然后载入 xml 文件,再根据待取节点父节点在 xml 文件中的序号和本身的序号,确定待取节点的位置,最后返回待取节点的值。
//pId 待取节点父节点序号
//cId 待取节点序号
function getXmlNodeValue(pId, cId) {var xmlDoc = new ActiveXObject("MicrosoftXMLDOM");
xmlDocasync = false;
xmlDocload("employeeInfoxml");
var nodes = xmlDocdocumentElementchildNodes[pId]childNodes[cId];return nodeschildNodes[0]text;
}
调用方法:alert(getXmlNodeValue(1, 2));
2、用 for 循环来取
实现过程:首先创建一个 ie 支持的 xml 对象,如果发生异常,是创建一个 FireFox 支持的空 xml 对象并返回空;然后载入 xml 文件,如要发生异常也返回空;最后,通过 for 循环遍历查找与传入的节点值相同的节点,找到后返回属于该节点的属性值。
//nodeValue 待取节点的所属节点值
function getXmlNodeValueFor(nodeValue){var xmlDoc;
try {
//创建一个 ie 支持的 XML 文档对象
xmlDoc = new ActiveXObject("MicrosoftXMLDOM");
}catch(e){
try{
//创建FireFox空的XML文档对象
xmlDoc=documentimplementationcreateDocument("","",null);
}catch(e){
alert(emessage);
return "";
}
}
xmlDocasync = false;
try {
xmlDocload("employeeInfoxml");
}catch(e){
alert(emessage);
return "";
}
var xd=xmlDocdocumentElementchildNodes;
if(xd==null)
return "";
var tempValue;
for(var i=0;i<xdlength;i++){
if(xd[i]childNodes[0]childNodes[0]nodeValue==nodeValue) tempValue=xd[i]childNodes[2]childNodes[0]nodeValue;
}
return tempValue;
}
调用方法:alert(getXmlNodeValueFor("王佳琳"));
sql取每个节点的数据的方法:我的数据库中有一列数据类型。
样本值如下所示。
<Responses>
<Response>
<task></task>
</Response>
<Response>
<task></task>
</Response>
<Response>
<task></task>
</Response>
</Responses>
因此,从上面的xml中,我需要提取每个节点,并将其保存为另一个表中的不同行。从上面的示例中,将有3行。
为什么 elasticsearch 获取节点信息失败
早期 es 版本有 split brain 问题,俗称脑裂。ES 采用的是一种 P2P 的 gossip 选举方式,Gossip 算法因为 Cassandra 而名声大噪。
背景:
Gossip 算法, 灵感来自办公室八卦, 只要一个人八卦一下, 在有限的时间内所有人都会知道该八卦的信息,
这种方式也与病毒传播类似, 因为 Gossip 有众多的别名"闲话算法"、"疫情传播算法"、"病毒感染算法"、"谣言传播(Rumor-Mongering)算法"
但 Gossip 并不是一个新东西, 之前的泛洪查找、路由算法都归属于这个范畴, 不同的是 Gossip 给这类算法提供了明确的语义、具体实施方法及收敛性证明
特点:
Gossip 算法又被称为反熵(Anti-Entropy), 熵是物理学上的一个概念, 代表杂乱无章, 而反熵就是在杂乱无章中寻求一致,
这充分说明了 Gossip 的特点:在一个有界网络中, 每个节点都随机地与其他节点通信, 经过一番杂乱无章的通信,
最终所有节点的状态都会达成一致 每个节点可能知道所有其他节点, 也可能仅知道几个邻居节点,
只要这些节可以通过网络连通, 最终他们的状态都是一致的, 当然这也是疫情传播的特点
要注意到的一点是, 即使有的节点因宕机而重启, 有新节点加入, 但经过一段时间后,
这些节点的状态也会与其他节点达成一致, 也就是说, Gossip 天然具有分布式容错的优点
本质:
Gossip 是一个带冗余的容错算法, 更进一步, Gossip 是一个最终一致性算法。
虽然无法保证在某个时刻所有节点状态一致, 但可以保证在”最终“所有节点一致, ”最终“是一个现实中存在, 但理论上无法证明的时间点。
因为 Gossip 不要求节点知道所有其他节点, 因此又具有去中心化的特点, 节点之间完全对等, 不需要任何的中心节点。
实际上 Gossip 可以用于众多能接受“最终一致性”的领域:失败检测、路由同步、Pub/Sub、动态负载均衡。
但 Gossip 的缺点也很明显, 冗余通信会对网路带宽、CPU 资源造成很大的负载, 而这些负载又受限于通信频率, 该频率又影响着算法收敛的速度。
能。js是指html中每个标签看成一个节点,通过js将这些节点获取出来使用JS的document内置对象有自己的属性和方法,在程序中是可以进行获得其中的节点的,节点是指在网页中所有对象和内容都被称为节点,如文档、元素、文本、属性、注释等,节点Node是DOM最基本的单元,并派生出不同类型的节点。
1)一共12个节点类型
2)dom *** 作就是对节点进行 *** 作
3)节点的类型的获取方法notetype
4)ie9以上及chrome safari firefox 会将换行符当成节点
(1)静态获取
(2)返回带有指定ID的元素
var box1=documentgetElementById('box');
(1)根据标签名获取
(2)得到的是个数组
var div1=documentgetElementsByTagName('div')[0];
(1)根据类名获取元素
(2)动态获取
(3)得到的是一个数组
var box=documentgetElementsByClassName('box')[0];
(1)返回符合要求第一个元素
(2)通过css选择器来获取指定标签
(3)静态获取
(1)返回所有匹配元素
(2)根据css选择器来获取所有标签
(3)得到的是一个数组
获取兄弟节点
获取下一个兄弟标签
获取上一个兄弟节点
获取上一个兄弟标签
获取最后一个子节点
获取最后一个子标签
获取所有非标签类型的子节点
获取所有子标签节点
获取父节点
增加节点
var div=documentcreateElement('div');
在父元素的末尾,插入节点
在添加元素前,需要将元素先创建好
divappendChild(div);
修改指定子节点
删除指定子节点
在删除前需要先获取到被删除元素
divremoveChild(box);
删除当前节点
需要先获取到被删除的节点
divremove();
(1)设置ID
divid='box';
(2)设置class
divclassName='box';
(3)设置style
divstylewidth='10px';
(4)设置路径
imgsrc='/';
(5)自定义属性
以上就是关于id选择器/类选择器/元素选择器/全选择器全部的内容,包括:id选择器/类选择器/元素选择器/全选择器、如何获得Jtree中某个节点的路径、java XPath怎么获取节点属性的值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)