JS-DOM的增删改

一、方法

方法

作用

参数

createElement()

创建一个元素

创建的元素

createTextNode()

创建一个文本节点

输入的文本

appendChild()

把元素追加到一个容器的末尾

元素

父节点.insertBefore(newNode, referenceNode)

把一个元素插入到另一个元素的前面

newNode:将要插入的节点

referenceNode:被参照的节点(即要插在该节点之前)

insertedNode:插入后的节点

parentNode:父节点

【ele].cloneNode()

把某一个节点进行克隆

(无/true)

● ();浅克隆: 只是克隆了一个节点,里面的内容还有样式都没克隆

● (true);深克隆:把节点包含的所有内容进行克隆

【context】.removeChild(ele)

移除某个节点

元素

setAttribute

设置当前元素的某一个自定义属性

属性名

getAttribute

获取当前元素的某一个自定义属性

属性名

removeAttribute

删除当前元素的某一个自定义属性

属性名

 二、代码示例及结果展示

2.1 初始页面代码及效果图

 <ul>
      <li id="one" style="color: red">111</li>
      <li id="two" class="2style">222</li>
 </ul>

2.2 方法代码及结果展示

2.2.1 createElement

        //方法一:
        //1.创建标签
        let div = document.createElement("div");
        //2. 添加内容
        div.innerHTML = "hello";
        //3.写入页面  父元素.appendChild(子元素)
        // 添加到父元素的最后,是最后一个子元素
        document.body.appendChild(div); 

 

2.2.2 createTextNode

         //不建议
        //1.创建标签
        let div = document.createElement("div");
        //2. 添加内容
        let mytext = document.createTextNode("哈哈");
        div.appendChild(mytext);
        //3.写入页面
        document.body.appendChild(div);

 

2.2.3 appendChild

 该方法一般与上两个方法合并使用,用于将添加的元素追加至容器末尾

2.2.4 insertBefore

 该方法有两个作用:

        1.实现元素的插入

 //1.实现元素的插入       
        var lia = document.createElement("li");
        lia.innerHTML = "aaa";
        var ul = document.querySelector("ul");
        // 父级元素.insertBefore(新的子元素,旧的子元素)
        // 将新的子元素插入到旧的子元素的前面
        ul.insertBefore(lia, two);

 

        2.实现元素位置的交换

//2.实现元素的交换位置
        var ul = document.querySelector("ul");
        //交换位置
        ul.insertBefore(two, one);  

 

2.2.5 cloneNode

         //克隆  克隆元素.cloneNode(无/true)
          var ul = document.querySelector("ul");
          console.log(ul.cloneNode()); //只是克隆了一个节点,里面的内容还有样式都没克隆
          console.log(ul.cloneNode(true)); //有样式,有内容
样式图如下:

 

控制台输出:

           var ul = document.querySelector("ul");
          var con = ul.cloneNode(true);
          document.body.appendChild(con);    

 

2.2.6 removeChild

//删除某个节点  父元素.removeChild(子元素)
          var ul = document.querySelector("ul");
          ul.removeChild(one);

 

2.2.7 setAttribute

//设置属性
           two.setAttribute("name", "222");
           console.dir(two);

 

2.2.8 getAttribute

//获取属性
           console.log(two.getAttribute("id"));
           console.log(two.getAttribute("age")); //null

 

2.2.9 removeAttribute

//删除属性
           two.removeAttribute("class");   

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是使用 `react-router-dom` v6 的示例来动态增删路由: ```javascript import React from 'react'; import { BrowserRouter as Router, Routes, Route, Link } from 'react-router-dom'; const App = () => { const [routes, setRoutes] = React.useState([ { id: 1, path: '/route/1', element: <Route1 /> }, { id: 2, path: '/route/2', element: <Route2 /> }, ]); const addRoute = () => { const newRoute = { id: routes.length + 1, path: `/route/${routes.length + 1}`, element: <h1>New Route {routes.length + 1}</h1>, }; setRoutes([...routes, newRoute]); }; const removeRoute = (id) => { setRoutes(routes.filter((route) => route.id !== id)); }; const updateRoute = (id, path) => { setRoutes( routes.map((route) => route.id === id ? { ...route, path } : route ) ); }; return ( <Router> <div> <nav> <ul> {routes.map((route) => ( <li key={route.id}> <Link to={route.path}>Route {route.id}</Link> <button onClick={() => removeRoute(route.id)}>X</button> <button onClick={() => updateRoute(route.id, '/new-path')}> Update </button> </li> ))} </ul> <button onClick={addRoute}>Add Route</button> </nav> <Routes> {routes.map((route) => ( <Route key={route.id} path={route.path} element={route.element} /> ))} </Routes> </div> </Router> ); }; const Route1 = () => { return <h1>Route 1</h1>; }; const Route2 = () => { return <h1>Route 2</h1>; }; export default App; ``` 在 `react-router-dom` v6 中,我们使用 `<Routes>` 组件来定义路由,使用 `<Route>` 组件来定义每个具体的路由。在上面的代码中,我们使用 `useState` hook 来管理路由数组。然后,我们定义了三个函数:`addRoute`,`removeRoute` 和 `updateRoute`,分别用于添加、删除和更新路由。这些函数都会更新路由数组,并使用 `setRoutes` hook 来重新渲染应用程序。 在 `render` 方法中,我们首先渲染一个导航栏,其中包含一个用于添加新路由的按钮,以及每个路由的删除和更新按钮。然后,我们渲染一个 `<Routes>` 组件,其中包含每个路由的 `<Route>` 组件。 当用户点击“添加路由”按钮时,`addRoute` 函数会创建一个新的路由对象,并将其添加到路由数组中。当用户点击“删除”按钮时,`removeRoute` 函数会从路由数组中删除具有指定 ID 的路由。当用户点击“更新”按钮时,`updateRoute` 函数会更新具有指定 ID 的路由的路径。 最后,我们使用 `map` 函数将每个路由渲染为导航栏中的一个链接,并将每个路由渲染为 `<Route>` 组件。 这是一个简单的例子,演示了如何使用 `react-router-dom` v6 来动态增删路由。你可以根据自己的需求进行修和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值