节点关系和动态创建

查询根节点:

语法结构:

document.documentElement

属性:clientHeight:整个窗口高度

<!Doctype html>
<html>
    <head>
        <title></title>
        <meta charset = "utf-8">
    </head>
    <body>
    	<div>div标签块</div>
        <script type = "text/javascript">
            //查询根节点
            var myform = document.documentElement;
            
            //查询根节点属性:窗口高度
            var height = myform.clientHeight; 
            console.log(height);
        </script>
    </body>
</html>

 

查询body节点:

语法结构:

document.body

属性:clientHeight:整个内容高度

<!Doctype html>
<html>
    <head>
        <title></title>
        <meta charset = "utf-8">
    </head>
    <body>
    	<div>div标签块</div>
        <script type = "text/javascript">
            //查询body节点
            var myform = document.body;
            console.dir(myform);
            //查询body节点属性:内容高度
            var height = myform.clientHeight;
            console.log(height);
        </script>
    </body>
</html>

 

查询节点

parentNode:父节点

语法结构:

子节点对象.parentNode

firstChild:列表中的第一个节点

语法结构:

父节点对象.firstChild

注意:子节点包含空格和换行符 可以使用获取节点前三种方式

lastChild:列表中的最后一个节点

语法结构:

父节点对象.lastChild

注意:子节点包含空格和换行符 可以使用获取节点前三种方式

firstElementChild:第一个子元素节点

语法结构:

父节点对象.firstElementChild

使用这个属性会直接获得父元素的第一个子元素节点

lastElementChild:最后一个子元素节点

语法结构:

父节点对象.lastElementChild

使用这个属性会直接获得父元素的最后一个元素节点

childNodes:所有子节点的列表

语法结构:

父节点对象.childNodes

children 返回所有子元素节点组成的伪数组

语法结构:

父节点对象.children

previousSibling:上一个兄弟节点

语法结构:

兄弟节点对象.previousSibling

nextSibling:下一个兄弟节点

语法结构:

兄弟节点对象.nextSibling

previousElementSibling:上一个元素兄弟结点

语法结构:

兄弟结点对象.previousElementSibling

nextElementSibling:下一个元素兄弟结点

语法结构:

兄弟结点对象.nextElementSibling

增加节点

appendChild(node) 追加节点

语法:

父节点. appendChild(node)

insertBefore(newnode,refnode) 插入节点

语法:

父节点.insertBefore(新节点,在具体的节点之前插入)

注意:

追加新节点之前应该创建节点

动态创建节点

createElement():创建元素节点

语法:document.createElement(”元素名称“)

createAttribute():创建属性节点

createTextNode():创建文本节点

案例:在parent中添加一个新节点

修改节点

replaceChild(newnode,oldnode):替换节点

语法:

父节点.replaceChild(newnode,oldnode)

案例:用新节点替换旧节点

<!Doctype html>
<html>
    <head>
        <title></title>
        <meta charset = "utf-8">
    </head>
    <body>
    	<ul id = parent>
        	<li>第一行</li>
            <li id = "two">第二行</li>
            <li>第三行</li>
            <li>第四行</li>
        </ul>
        <script type = "text/javascript">
            //用新节点替换旧节点two
            //创建新节点
            //创建元素节点
            var liObj = document.createElement("li");
            //创建属性节点
            liObj.className = "aaa";
            //创建文本节点
            liObj.innerHTML = "<p>我是新增的文本节点段落</p>";
            //查询被替换的旧节点
            var two = document.getElementById("two");
            //替换节点
            	//获取父元素
            var parent = document.getElementById("parent");
            	//用新节点替换旧节点
            parent.replaceChild(liObj,two);
        </script>
    </body>
</html>

 

删除节点

removeChild(node) :删除节点

语法:

父节点.removeChild(删除节点)

注意:删除所有子节点,倒着删除

案例:删除two节点

<!Doctype html>
<html>
    <head>
        <title></title>
        <meta charset = "utf-8">
    </head>
    <body>
    	<ul id = parent>
        	<li>第一行</li>
            <li id = "two">第二行</li>
            <li>第三行</li>
            <li>第四行</li>
        </ul>
        <script type = "text/javascript">
            //需求:删除two节点
            //获取父元素
            var parent = document.getElementById("parent");
            //删除指定节点
            	//获取删除节点
            var two = document.getElementById("two");
            	//删除该节点
            parent.removeChild(two);
        </script>
    </body>
</html>

案例:删除parent中所有节

<!Doctype html>
<html>
    <head>
        <title></title>
        <meta charset = "utf-8">
    </head>
    <body>
    	<ul id = parent>
        	<li>第一行</li>
            <li id = "two">第二行</li>
            <li>第三行</li>
            <li>第四行</li>
        </ul>
        <script type = "text/javascript">
            //需求:删除parent中所有节点
            //获取父元素
            var parent = document.getElementById("parent");
           //获取父元素中所有节点
           var child = parent.childNodes;
           //删除所有子节点
            //遍历子元素
            for(var i = child.length-1;i>=0;i--){
                //删除所有子节点
                parent.removeChild(child[i]);
            }
        </script>
    </body>
</html>

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Flowable中,动态生成节点可以通过Java代码来实现。以下是一个简单的示例,可以创建一个UserTask节点并将其添加到一个流程定义中: ``` // 创建BpmnModel对象 BpmnModel model = new BpmnModel(); // 创建UserTask元素 UserTask userTask = new UserTask(); userTask.setId("task1"); userTask.setName("Task 1"); // 将UserTask元素添加到BpmnModel中 model.addFlowElement(userTask); // 创建Process元素 Process process = new Process(); process.setId("myProcess"); process.setName("My Process"); // 将UserTask元素添加到Process中 process.addFlowElement(userTask); // 将Process元素添加到BpmnModel中 model.addProcess(process); // 将BpmnModel转换为流程定义 BpmnXMLConverter converter = new BpmnXMLConverter(); byte[] bytes = converter.convertToXML(model); // 将流程定义部署到Flowable引擎中 Deployment deployment = repositoryService.createDeployment() .addString("myProcess.bpmn20.xml", new String(bytes)) .deploy(); ``` 在这个示例中,我们创建了一个BpmnModel对象,然后创建了一个UserTask元素,并将其添加到模型中。接下来,我们创建了一个Process元素,并将UserTask元素添加到Process中。最后,我们将BpmnModel转换为XML格式,并将其部署到Flowable引擎中。 需要注意的是,动态生成节点的实现可能会更加复杂,具体取决于你的需求。你可能需要使用其他类型的元素,例如ServiceTask或ExclusiveGateway。你还需要考虑元素之间的关系,例如顺序流和网关条件。如果你需要更复杂的流程定义,建议使用Flowable Designer或其他流程设计器来创建和编辑流程定义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值