原生js创建节点

<template>
  <div>
    <h3>创建节点</h3>
    <h3>
      1创建一个新的节点,需要传入节点的标签名称,返回创建的元素对象;createElement()
    </h3>
    <h3>2 创建一个文本节点,可以传入文本内容createTextNode()</h3>
    <h3>3 也能达到创建节点的效果,直接添加到指定位置 innerHTML()</h3>
    <button @click="addPara1">添加节点1</button>
    <button @click="addPara2">添加节点2</button>
    <button @click="addPara3">添加节点3</button>
    <button @click="addText4">添加输入框</button>
    <button @click="addText5">添加下拉框</button>

    <div id="idName"></div>
    <select name="people" class="people">
      <option value="1">产品</option>
      <option value="2">测试</option>
      <option value="3">开发</option>
    </select>
  </div>
</template>

<script>
export default {
  name: "PdfDown",
  components: {},
  data() {
    return {};
  },
  methods: {
    addPara1() {
      //创建P标签
      var p = document.createElement("p");
      console.log(p);
      //创建文本节点
      var text = document.createTextNode("这是p标签的文本");

      //将文本节点追加到元素节点中
      p.appendChild(text);
      console.log(p);

      //将P标签中内容添加到div中
      var div = document.getElementById("idName");
      div.appendChild(p);
    },
    addPara2() {
      let p = document.createElement("p");
      //用innerHTML方法直接给P标签赋值
      p.innerHTML = "这是p标签的文本222";
      let div = document.getElementById("idName");
      div.appendChild(p);
    },
    addPara3() {
      //只是加内容,没有单独样式标签
      let p = "这是p标签的文本333";
      let div = document.getElementById("idName");
      div.innerHTML += p;
    },
    addText4() {
      let div = document.getElementById("idName");
      let inp = document.createElement("input");
      inp.type = "text";
      inp.value = "没事就多喝水";
      div.appendChild(inp);

      // let div = document.getElementById("container");
      // let inp = "<input type='text' value='有事你就别喝水'>";
      // div.innerHTML+=inp;
      //这种种方法将第一种方法的赋值部分整合,使得P标签成为一个字符串而不是一个节点,所以使用innerHTML方法而不是appendChild方法。这一点需要特别注意
    },
    addText5() {
      debugger;
      let people = document.getElementsByName("people");
      let opt = '<option value="5">从前从前有个人爱你很久</option>';
      // 原生写法可能是people.innerHTML,我这用vue写的不识别需要加数组写法
      people[0].innerHTML += opt;

      //-----------------------------
      //  /*通过name属性获取下拉框对象*/
      //  let people = document.getElementsByName("people")[0];
      // /*创建下拉选项*/
      // let opt = document.createElement("option");
      // //设置文本和值
      // opt.value = "4";
      // opt.text = "debugger";
      // //将option添加到下拉选项中
      // people.appendChild(opt);
    },
  },
  mounted() {},
};
</script>

<style scoped lang="scss"></style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端小云儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值