⭐DOM如何获取页面元素

1.获取页面中的元素可以使用以下几种方式

  • 根据 ID 获取
  • 根据标签名获取
  • 通过 HTML5 新增的方法获取
  • 特殊元素获取

1.1根据ID 获取

使用getElementByld ( ) 方法可以获取带有 ID 的元素对象

<body>
    <div id="time">2021-9-9</div>
    <script>
         1. 因为我们的文档页面从上往下加载,所以得现有标签 所以script写到标签下面
         2. get 获得 element 元素 by 通过 驼峰命名法
         3. 参数 id 是大小写敏感的字符串
        var timer = document.getElementById('time');
        console.log(timer);
        console.log(typeof timer);   返回的是元素对象
         4. console.dir 打印我们返回的元素对象 更好的查看里面的属性和方法
        console.dir(timer); 
    </script>
</body>

2 .根据标签名获取 某些(多个元素)

使用getElementsByTagName()方法可以返回带有指定标签名的对象的集合

document.getElementsByTayName ( ’ 标签名 ’ ) ;

注意
因为得到的是一个对象的集合,所以我们想要操作里面的元素就需要遍历
得到元素对象是动态的

<ul>
        <li>知否知否,应是等你好久1</li>
        <li>知否知否,应是等你好久2</li>
        <li>知否知否,应是等你好久3</li>
        <li>知否知否,应是等你好久4</li>
        <li>知否知否,应是等你好久5</li>
    </ul>
        返回的是 获取锅来元素对象的集合 以为数组的形式储存
        var lis = document.getElementsByTagName('li');
        console.log(lis);
        console.log(lis[0]);
        console.log(typeof lis);
         2.我们想依次打印里面的元素对象 我们可以采取遍历的方式
        for(var i = 0; i < lis.length; i++){
            console.log(lis[i])
        }
         3. 如果页面中只有一个li 返回的还是伪数组的形式
         4. 如果页面中没有这个元素 返回的是 空 的伪数组

2.1 还可以获取某个元素(父元素)内部所有指定标签的子元素

element . getElementsByTagName( ’ 标签名 ’ );
或给 父元素设置一个 id 通过 id选到父元素 后用 id.getElementsByTagName ( ) ;
var 变量名 = document.getElementById( ’ id ’ );
var ol = document.getElementById(‘lo’);
console.log(ol.getElementsByTagName(‘li’));

注意;父元素必须是 单个对象(必须指明是哪一个元素).获取的时候不包括父元素自己。

3.通过HTML5 新增的方法获取

1. document.getElementsByClassName ( ’ 类名 ') ;// 根据类名返回元素对象集合
2.document.getquerySelector ( ’ 选择器 ’ ) ; // 根据指定选择器返回第一个元素对象
3.document.querySelectorAll( ’ 选择器 ’ ); // 根据指定选择器返回

  1. getElementsByClassName 根据类名获取某些元素集合
        var bx = document.getElementsByClassName('box');
        console.log(bx);
  2.querySelecctor 返回指定选择器的第一个元素对象 切记 里面的选择器需要加符号  .box(类选择器) #nav(id选择器)
        var firstBox = document.querySelector('.box');
        console.log(firstBox);
        var nav = document.querySelector('#nav');
        console.log(nav);
        var li = document.querySelector('li');
        console.log(li);
  3.querySelectorAll() 返回指定选择器的所有元素对象的集合
        var allBox = document.querySelectorAll('.box');
        console.log(allBox);

4.获取特殊元素( body 、html)

获取body 元素

1.document.body // 返回 body 元素对象

获取 html 元素

1.document.documentElement // 返回 html 元素对象

<think>好的,用户现在想了解如何从之前那个AJAX请求返回的data中获取oid的值。首先,我需要回顾一下之前的对话,确保我准确理解上下文。用户之前询问过json.data的内容,我解释了数据结构和可能的验证方法。现在他们提供了一个具体的响应示例,其中data是一个数组,每个元素包含oid等字段,用户想知道如何调用这个oid。 首先,我需要确认用户提供的JSON结构是否正确。他们给出的示例显示data是一个数组,里面有一个对象,包含oid、uid、pid等字段。用户的问题是,如何访问这个oid。看起来他们可能在尝试处理AJAX返回的数据时遇到了问题,或者想知道如何正确提取特定字段。 接下来,我需要考虑用户的可能使用场景。他们可能是在开发一个购物车页面或订单管理界面,需要显示订单ID(oid)或其他相关信息。用户可能对JavaScript的数据处理不太熟悉,尤其是处理从服务器返回的JSON数据。 用户的需求很明确,就是要获取data数组中的每个对象的oid。但需要确保他们理解如何遍历数组,以及如何访问对象的属性。此外,还需要注意可能的错误,比如data是否为数组,或者是否有多个元素。用户提供的示例中data是一个数组,但实际中可能存在空数组或多个元素的情况,可能需要处理这些情况。 然后,我需要给出具体的代码示例。例如,使用list变量(即json.data),然后遍历它,访问每个元素的oid属性。同时,可能需要提醒用户关于数据结构的验证,比如确保data确实是一个数组,每个元素都有oid字段。此外,如果用户需要将oid用于其他操作,比如生成列表或发送其他请求,可能需要进一步的代码示例。 另外,用户提供的JSON响应中有state:200,这可能是一个状态码,但之前的示例中可能使用的是code:200。需要指出这点,说明不同后端可能返回不同的字段名,用户需要根据实际情况调整。同时,可能需要注意异步处理的问题,确保在success回调函数内正确处理数据,避免在外部访问时数据还未返回的情况。 还要考虑用户可能遇到的常见错误,例如拼写错误(比如oid的大小写),或者data不是数组而是对象,或者data可能为null的情况。需要提醒用户进行必要的检查,比如在访问之前确保list存在且是数组,或者使用可选链操作符(如果他们的环境支持)来避免运行时错误。 总结来说,用户需要的是如何正确访问嵌套在AJAX响应中的oid值。我的回答应该包括代码示例、遍历数组的方法、可能的注意事项以及验证数据结构的建议,确保他们能够顺利提取所需的数据。</think>要通过AJAX响应数据中的`data`数组获取`oid`字段,具体实现方式如下(基于您提供的JSON数据结构): ```javascript $.ajax({ url: "/carts/", type: "GET", dataType: "JSON", success: function(json) { // 1. 获取整个订单数组 let orderList = json.data; // 2. 遍历每个订单对象 orderList.forEach(function(order) { // 3. 提取单个订单的oid let orderId = order.oid; console.log("订单ID:", orderId); // 示例:将oid插入DOM元素 // $("#orderList").append(`<li>${orderId}</li>`); }); } }); ``` ### 关键点说明: 1. **数据结构验证**: ```json { "state": 200, // 状态码(注意这里字段名是state而非code) "data": [ // 数据载体为数组 { "oid": 3, // ️ 目标字段 "uid": 6, "pid": 10000020, // ...其他字段 } ] } ``` 2. **多层级访问原理**: ``` json对象 → data数组 → 数组元素对象 → oid属性 ↓ ↓ ↓ 响应根结构 业务数据容器 单个订单对象 ``` 3. **典型应用场景**: ```javascript // 创建订单ID映射表 let idMapping = {}; orderList.forEach(order => { idMapping[order.oid] = order.title; // 用oid作为键 }); // 生成HTML列表 let html = orderList.map(order => ` <div class="order-item" data-oid="${order.oid}"> <h3>订单#${order.oid}</h3> <p>商品:${order.title}</p> </div> `).join(''); ``` ### 注意事项: 1. **防御性编程**: ```javascript // 检查data是否为数组 if (!Array.isArray(json.data)) { console.error("数据结构异常"); return; } // 处理空数据 if (json.data.length === 0) { $("#emptyTips").show(); } ``` 2. **字段差异处理**: ```javascript // 兼容不同命名风格 let orderId = order.oid || order.orderID || order.id; ``` 3. **时间字段处理**: ```javascript // 转换ISO时间格式 new Date(order.orderTime).toLocaleString() // 输出:2025/3/19 12:00:28 ``` 可通过以下方式验证数据流向: ```javascript // 调试输出完整数据结构 console.log("原始响应:", json); // 查看数组长度 console.log("订单数量:", json.data.length); // 检查首元素字段 console.log("首订单字段:", Object.keys(json.data[0])); ``` 完整调用流程示意图: ``` 浏览器请求 → 服务器返回JSON → AJAX解析 → json.data → order.oid GET /carts/ │ │ ↓ ↓ HTTP响应包 JS对象访问 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值