C1能力认证训练题解析 _ 第四部分 _ Web进阶(1)

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: C1能力认证训练题解析 _ 第四部分 _ Web进阶(1)

一、DOM节点操作(上)

1. 常用节点获取方法:

image.png

2. 获取元素节点信息常用属性:

image.png

3. 常用的节点属性获取方式:

image.png

(1)获取id名为container的div元素,请补全横线处代码。

document.________('div#container')

答案:querySelector


“div#container”属于CSS选择器字符串,且id名不可重复,选择的只能是一个元素,所以需要获取指定选择器或选择器组匹配的第一个节点。


(2)获取ul中的第2个li元素,请补全横线处数字。

document.querySelectorAll('ul li')[________]

答案:1


querySelectorAll方法获取结果为节点集合,集合索引从0开始,依次增加。


(3)获取最外层div元素,请补全横线处代码。

<div>
  <p><span></span></p>
</div>
<script>
  document.querySelector('span').________.parentNode
</script>

答案:parentNode


观察元素结构可知,div元素为span元素的父级的父级,使用parentNode即可返回指定节点的父节点,父级的父级即为 .parentNode.parentNode


(4)获取div内所有p元素和span元素,请补全横线处代码。


<div>
  <p></p>
  <p></p>
  <span></span>
  <span></span>
</div>
<script>
  document.querySelector('div').________
</script>

答案:children


观察元素结构可知,p元素和span元素皆为div元素的子元素,这里需要使用获取选定元素所有子元素的属性。


(5)代码如下,需要判断input输入框是否为密码类型,请补全横线处代码。


<input type="password" placeholder="输入密码">
<script>
  var inputType = document.querySelector('input').________
  if (inputType === "password") {
    // 判断密码
  }
</script>

答案:getAttribute('type')


需要判断输入框的类型,即判断input元素的type属性值,获取元素属性值可通过属性名或使用getAttribute方法获取。


二、DOM节点操作(下)

1. DOM 修改:

image.png

2. DOM 添加:

image.png


3. DOM 删除:

image.png

(1)删除类名为disable的元素,补全横线处代码。


var disbaleItem = document.querySelector('.disable')
disbaleItem.parentNode.________(disbaleItem)

答案:removeChild


此处为节点删除操作,但要注意已经使用parentNode指定了父节点,所以不可使用remove。


(2)在ul中的最后一个li元素后添加一个新的li元素,li元素文字内容为input元素的输入值,请补全横线处代码(依次填写答案,使用中文逗号「,」隔开)

<ul>
  <input type="text" value="任务3" />
  <li class="item">任务1</li>
  <li class="item">任务2</li>
</ul>
<script>
  var ul = document.querySelector ('ul')
  var val = document.querySelector('input').value
  var lastItem = document.________('li')
  lastItem.innerHTML = val
  ul.________(lastItem)
</script>

答案:createElement,appendChild


添加的为一个新li元素,所以需要创建元素,第一空应使用节点创建方法createElement,

由于需要在ul的最后一个元素后插入,参数只有一个lastItem代表元素节点,最后一空应为符合要求的节点添加方法。


(3)将内容为第一名的元素插入到ol元素内的第一行,请补全横线处代码。

<ol>
    <li>第二名</li>
    <li>第三名</li>
</ol>
<script>
  var ol = document.querySelector('ol')
    ol.insertAdjacentHTML('________', '<li>第一名</li>')
</script>

答案:afterbegin


insertAdjacentHTML方法的第一个参数为插入位置,题目要求要插入元素内第一行,也就是元素内部的第一个子节点之前,这里应使用对应的位置参数。


(4)将不属于国内的城市删除,请选择正确的选项。

<ul>
    <li>石家庄</li>
    <li>秦皇岛</li>
    <li>伊拉克</li>
    <li>哈尔滨</li>
</ul>
<script>
  var item = document.querySelectorAll('li')[________]
  item.remove()
</script>

答案:2


remove()方法可删除选定元素,这里的item指的是被删除的li元素,由题知,这里要删除不属于国内的元素即伊拉克,所以要填写对应的数字索引。


三、DOM 控制 CSS 样式

1. 通过style属性控制样式:


语法:element.style.property = value


property为CSS属性名,如:color,margin。如果属性名原来包含“-”,则需转换为小驼峰形式,如:backgroundColor,marginLeft。


2. 通过classList控制样式:

image.png


(1)将div元素背景颜色设置为蓝色,请补全横线处代码。

var box = document.querySelector('div')
box.style.________ = 'blue'

答案:backgroundColor


原背景颜色属性名为background-color,使用style属性更改样式时,如果原CSS属性包含“-”,则需转换命名形式,此处应为修改命名形式后的背景颜色属性名。


(2)将div设置为隐藏,请补全横线处代码。


<style>
  .hidden {
    display: none;
  } 
</style>
<div class="box">看不见我</div>
<script>
  var box = document.querySelector('.box')
  box.classList.________('hidden')
</script>

答案:add


div 的类名为 hidden,使用 add 添加类名。


(3)将包含disabled类名的按钮设置为禁用,请补全横线处代码.


<button class="delete disabled">删除</button>
<script>
  var delBtn = document.querySelector('.delete')
    if (delBtn.classList.________ ('disabled')) {
        delBtn.setAttribute('disabled', true)
    }
</script>

答案:contains


该题用到了 if 语句,需要判断 button 元素中是否包含 disabled类名,此处应使用classList中的 contains对应的判断类名是否存在。


(4)将span元素文字颜色设置为绿色,请补全横线处代码。


<style>
    .pass {
        color: green;
    }
    .loading {
        color: orange;
    }
</style>
<span class="pass loading">考试通过</span>
<script>
  var item = document.querySelector('span')
  item.classList.remove('________')
</script>

答案:loading


pass类名代表绿色,loading类名代表橘色,如果要使用绿色,就得删除类名 loading。使用classList中的remove方法。


(5)span元素的文字颜色是红色。


<style>
    .active {
        color: red;
    }
</style>
<span>逢考必过</span>
<script>
  var item = document.querySelector('span')
  item.style.color = 'blue'
  item.classList.add('active')
</script>

答案:错误


对于更改同一个元素的同一种样式,style属性的优先级要高于classList。


四、节点写入

1. 节点写入常用方式:

image.png

(1)在div中插入文字内容为“加油,我要通过C认证”的p元素,请补全横线处代码。


<div></div>
<script>
  var box = document.querySelector('div')
  box.________ = '<p>加油,我要通过C认证</p>'
</script>

答案:innerHTML


此处需要插入一个p元素,插入的值为字符串,所以需要使用可以解析html字符串的DOM属性,返回元素中的html内容。


(2)使如下代码运行后输出字符串sky,请补全横线处代码。


<div>
    <span>s</span><span>k</span><span>y</span>
</div>
<script>
  var word = document.querySelector('div').________
  console.log(word)
</script>

答案:innerText


sky分别对应div内三个span元素中的文本,所以这里只需要获取到元素文本内容,需要使用只获取文本内容的DOM属性innerText。


(3)在第一行元素后插入第二行元素,请补全横线处代码。


<div>第一行</div>
<script>
    document.________ ('<div>第二行</div>')
</script>

答案:write


此处需要在div后添加一个元素,应使用对应的节点写入方法,将html字符串解析为html元素并写入到html文档中。


(4)将ul中的span元素改为li元素,文字内容不变,请补全横线处代码。


<ul>
    <span>第一梯队</span>
    <li>第二梯队</li>
</ul>
<script>
  var box = document.querySelector('ul span')
  box.innerHTML = '________'
</script>
答案:<li>第一梯队</li>

此处需要将span元素替换为li元素,需要使用到innerHTML,对应的值只需要把html字符串中span改为li即可。


(5)代码运行后,页面中所有数字之和是________。


<ul>
    <script>
        document.write('<li>5</li>')
    </script>
    <li>6</li>
    <script>
        var box = document.querySelector('ul')
        box.innerHTML = '<li>7</li>'
    </script>
</ul>

答案:7


代码最后使用了innerHTML,将ul中的所有内容全部替换成了对应的html字符串,页面中只会显示一个数字。

相关文章
|
12天前
|
SQL 安全 数据库
Python Web开发者必看!SQL注入、XSS、CSRF全面解析,守护你的网站安全!
在Python Web开发中,构建安全应用至关重要。本文通过问答形式,详细解析了三种常见Web安全威胁——SQL注入、XSS和CSRF,并提供了实用的防御策略及示例代码。针对SQL注入,建议使用参数化查询;对于XSS,需对输出进行HTML编码;而防范CSRF,则应利用CSRF令牌。通过这些措施,帮助开发者有效提升应用安全性,确保网站稳定运行。
27 1
|
2月前
|
API C# 开发框架
WPF与Web服务集成大揭秘:手把手教你调用RESTful API,客户端与服务器端优劣对比全解析!
【8月更文挑战第31天】在现代软件开发中,WPF 和 Web 服务各具特色。WPF 以其出色的界面展示能力受到欢迎,而 Web 服务则凭借跨平台和易维护性在互联网应用中占有一席之地。本文探讨了 WPF 如何通过 HttpClient 类调用 RESTful API,并展示了基于 ASP.NET Core 的 Web 服务如何实现同样的功能。通过对比分析,揭示了两者各自的优缺点:WPF 客户端直接处理数据,减轻服务器负担,但需处理网络异常;Web 服务则能利用服务器端功能如缓存和权限验证,但可能增加服务器负载。希望本文能帮助开发者根据具体需求选择合适的技术方案。
68 0
|
2月前
|
Java 缓存 数据库连接
揭秘!Struts 2性能翻倍的秘诀:不可思议的优化技巧大公开
【8月更文挑战第31天】《Struts 2性能优化技巧》介绍了提升Struts 2 Web应用响应速度的关键策略,包括减少配置开销、优化Action处理、合理使用拦截器、精简标签库使用、改进数据访问方式、利用缓存机制以及浏览器与网络层面的优化。通过实施这些技巧,如懒加载配置、异步请求处理、高效数据库连接管理和启用GZIP压缩等,可显著提高应用性能,为用户提供更快的体验。性能优化需根据实际场景持续调整。
49 0
|
2月前
|
Java 数据库 API
JSF与JPA的史诗级联盟:如何编织数据持久化的华丽织锦,重塑Web应用的荣耀
【8月更文挑战第31天】JavaServer Faces (JSF) 和 Java Persistence API (JPA) 分别是构建Java Web应用的用户界面组件框架和持久化标准。结合使用JSF与JPA,能够打造强大的数据驱动Web应用。首先,通过定义实体类(如`User`)和配置`persistence.xml`来设置JPA环境。然后,在JSF中利用Managed Bean(如`UserBean`)管理业务逻辑,通过`EntityManager`执行数据持久化操作。
38 0
|
2月前
|
前端开发 开发者 Apache
揭秘Apache Wicket项目结构:如何打造Web应用的钢铁长城,告别混乱代码!
【8月更文挑战第31天】Apache Wicket凭借其组件化设计深受Java Web开发者青睐。本文详细解析了Wicket项目结构,帮助你构建可维护的大型Web应用。通过示例展示了如何使用Maven管理依赖,并组织页面、组件及业务逻辑,确保代码清晰易懂。Wicket提供的页面继承、组件重用等功能进一步增强了项目的可维护性和扩展性。掌握这些技巧,能够显著提升开发效率,构建更稳定的Web应用。
76 0
|
2月前
|
UED 存储 自然语言处理
【语言无界·体验无疆】解锁Vaadin应用全球化秘籍:从代码到文化,让你的应用畅游世界每一个角落!
【8月更文挑战第31天】《国际化与本地化实战:构建多语言支持的Vaadin应用》详细介绍了如何使用Vaadin框架实现应用的国际化和本地化,提升用户体验和市场竞争力。文章涵盖资源文件的创建与管理、消息绑定与动态加载、日期和数字格式化及文化敏感性处理等方面,通过具体示例代码和最佳实践,帮助开发者构建适应不同语言和地区设置的Vaadin应用。通过这些步骤,您的应用将更加灵活,满足全球用户需求。
35 0
|
2月前
|
开发者 Java
Play Framework深度解析:依赖注入的神秘力量,如何助力Web应用架构优化?答案即将揭晓!
【8月更文挑战第31天】依赖注入(DI)是现代软件开发的关键技术,用于分离对象创建与依赖关系,提升代码的可维护性和可测试性。Play Framework是一款高性能Java Web框架,内置了基于Google Guice的DI支持。本文探讨Play Framework中DI的最佳实践,包括定义组件、构造函数注入、字段注入以及作用域控制和自定义绑定等高级特性,帮助开发者轻松构建结构清晰、可维护性高的Web应用。
36 0
|
2月前
|
监控 网络协议 Java
Tomcat源码解析】整体架构组成及核心组件
Tomcat,原名Catalina,是一款优雅轻盈的Web服务器,自4.x版本起扩展了JSP、EL等功能,超越了单纯的Servlet容器范畴。Servlet是Sun公司为Java编程Web应用制定的规范,Tomcat作为Servlet容器,负责构建Request与Response对象,并执行业务逻辑。
Tomcat源码解析】整体架构组成及核心组件
|
2月前
|
存储 NoSQL Redis
redis 6源码解析之 object
redis 6源码解析之 object
56 6
|
20天前
|
存储 缓存 Java
什么是线程池?从底层源码入手,深度解析线程池的工作原理
本文从底层源码入手,深度解析ThreadPoolExecutor底层源码,包括其核心字段、内部类和重要方法,另外对Executors工具类下的四种自带线程池源码进行解释。 阅读本文后,可以对线程池的工作原理、七大参数、生命周期、拒绝策略等内容拥有更深入的认识。
什么是线程池?从底层源码入手,深度解析线程池的工作原理

推荐镜像

更多
下一篇
无影云桌面