node

Java web JavaScript DOM 编程

╄→гoц情女王★ 提交于 2020-01-20 00:44:36
 JavaScript DOM 编程 (1).DOM概述及分类 (2).DOM结构模型:XML DOM 和 HTML DOM 关系? (3).结点,结点树,结点属性与方法? 1.DOM是什么? document object model 文档对象模型 是W3C织制订的一套用于访问XML和HTML文档的标准.允许脚本动态地访问和更新文档的内容、结构和样式. 分类 DOM Core XML DOM HTML DOM 2. DOM结构模型:XML DOM 和 HTML DOM 关系? 3. nodeName String 节点的名字;根据节点的类型而定义 nodeValue String 节点的值;根据节点的类型而定义 nodeType Number 节点的类型常量值之一 ownerDocument Document 指向这个节点所属的文档 firstChild Node 指向在childNodes列表中的第一个节点 lastChild Node 指向在childNodes列表中的最后一个节点 childNodes NodeList 所有子节点的列表 parentNode Node 返回一个给定节点的父节点。 previousSibling Node 指向前一个兄弟节点;如果这个节点就是第一个兄弟节点,那么该值为null nextSibling Node 指向后一个兄弟节点

javascript快速入门15--节点

谁都会走 提交于 2020-01-20 00:42:53
节点类型 DOM定义了Node的接口以及许多种节点类型来表示节点的多个方面! Document——最顶层的节点,所有的其他节点都是附属于它的。 DocumentType——DTD引用(使用<!DOCTYPE >语法)的对象表现形式,例如<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" >。它不能包含子节点。 DocumentFragment——可以像Document一样来保存其他节点。 Element——表示起始标签和结束标签之间的内容,例如<tag ></tag >或者<tag / >。这是唯一可以同时包含特性和子节点的节点类型。 Attr——代表一对特性名和特性值。这个节点类型不能包含子节点。 Text——代表XML文档中的在起始标签和结束标签之间,或者CData Section内包含的普通文本。这个节点类型不能包含子节点。 CDataSection——<![CDATA[ ]]>的对象表现形式。这个节点类型仅能包含文本节点Text作为子节点。 Entity——表示在DTD中的一个实体定义,例如<!ENTITY foo "foo">。这个节点类型不能包含子节点。 EntityReference——代表一个实体引用,例如"。这个节点类型不能包含子节点。 ProcessingInstruction—

js操作dom元素属性和方法

蓝咒 提交于 2020-01-20 00:41:17
1.用于处理xml文档的dom元素属性 属性名 描述 childNodes返回当前元素所有子元素的数组 firstChild返回当前元素的第一个下级子元素 lastChild返回当前元素的最后一个子元素 nextSbling返回紧跟在当前元素后面的元素 nodeValue指定表示元素值的读写属性 parentNode返回元素的父节点 previousSibling返回紧邻当前元素之前的的元素 2.用于遍历XML文档的dom元素方法 方法名 描述 getElementById(document)获取指定唯一id属性值文档中的元素。 getElementByTagName(name)返回当前元素中指定标记名的子元素数组 hasChildNodes()返回一个布尔值,只是元素是否有子元素 getAttribute(name)返回元素的属性值,属性由name指定 3.动态创建内容是所用的w3c dom属性和方法 属性\方法 描述 document.createElement(tagName)文档对象上的createElement方法可以创建由tagName指定的元素。如果以串div作为方法参数,就会生成一个div元素 document.createTextNode(text) 文档对象的createTextNode方法会创建一个包含静态文本的节点 <element>.appendChild

数据结构之二分搜索树(六)

元气小坏坏 提交于 2020-01-20 00:28:26
二分搜索树是二叉树的一种。 二叉树就是有左右节点,有唯一根节点的树类数据结构。二叉树具有天然递归结构,每个父亲节点的左右子树也是二叉树 class Node{   E e;   Node left;   Node right; } 上图是一个满二分搜索树,但用的时候不一定是满的, 符合条件就行。所以存储的元素必须具有可比较性(对于对象,可以自定义比较规则)。继承Comparable接口 二分搜索树新增节点 //添加一个节点 public void add(E e) { root = add(root,e); } private Node add(BST<E>.Node node, E e) { // TODO Auto-generated method stub if(node == null) { node = new Node(e); return node; }else{ if(e.compareTo(node.e)<0) { node.left = add(node.left,e); }else if(e.compareTo(node.e)>0) { node.right = add(node.right,e); } } return node; } 二分搜索数的遍历 1.前序遍历 //前序遍历,传入根节点,然后通过左右节点和递归思想进行遍历 public void

NodeJS自定义模块

时光毁灭记忆、已成空白 提交于 2020-01-20 00:19:41
//1.创建测试模块js文件(我这里命名为test.js) //2.添加测试方法 function test(){   console.log('Test Success!'); } //3.公开该方法到node模块 //exports.test(这个是public的方法名,外部调用的时候,使用这个方法名) exports.test = test; //4.测试(在另一个js文件中引入这个模块,并调用对应测试函数,两个js文件在同一目录下) const testModule = require('./test.js'); testModule.test(); 来源: CSDN 作者: 会做饭的技术男 链接: https://blog.csdn.net/u011927449/article/details/104044098

【Foreign】Weed [线段树]

China☆狼群 提交于 2020-01-19 23:49:53
Weed Time Limit: 20 Sec Memory Limit: 512 MB Description   从前有个栈,一开始是空的。   你写下了 m 个操作,每个操作形如 k v :     若 k = 0,代表往栈顶加入一个数 v     若 k = 1,则代表从栈顶弹出 v 个数,如果栈中的元素少于 v 个,则全部弹出。   接着你又进行了 q 次修改,每次你会选择一个操作,并且修改它的两个参数。   在每次修改后,你都要求出如果依次执行这些操作,最后栈中剩下的元素之和。 Input   第一行两个正整数 m,q,分别表示操作数和修改次数。   接下来 m 行,每行两个整数 k,v,代表一个操作。   接下来 q 行,每行三个正整数 c,k,v,表示将第 c 个操作的参数修改为 k 和 v。 Output   输出 q 行,每行一个整数,代表依次执行所有操作后栈中剩下的元素之和。 Sample Input   5 2   0 3   0 2   0 3   1 1   0 5   1 0 3   1 0 1 Sample Output   10   8 HINT   m,q ≤ 2×1e5, v ≤ 1e4 Solution   首先,我们可以把一个操作拆成: 先删除若干个数,然后加入若干个数 。   那么我们可以用 线段树 来维护,一个节点记录: 删除del个数

ReentrantLock源码分析

血红的双手。 提交于 2020-01-19 22:57:30
概述 ReentrantLock是一个可重入的互斥锁,也被称为独占锁。它支持公平锁和非公平锁两种模式。 ReentrantLock的使用方法 下面看一个最初级的例子: public class Test { //默认内部采用非公平实现 ReentrantLock lock=new ReentrantLock(); public void myMethor(){ lock.lock(); //需要加锁的一些操作 //一定要确保unlock能被执行到,尤其是在存在异常的情况下 lock.unlock(); } } 在进入方法后,在需要加锁的一些操作执行之前需要调用lock方法,在jdk文档中对lock方法详细解释如下: 获得锁。 如果锁没有被另一个线程占用并且立即返回,则将锁定计数设置为1。 如果当前线程已经保持锁定,则保持计数增加1,该方法立即返回。 如果锁被另一个线程保持,则当前线程将被禁用以进行线程调度,并且在锁定已被获取之前处于休眠状态,此时锁定保持计数被设置为1。 这里也很好的解释了什么是可重入锁,如果一个线程已经持有了锁,它再次请求获取自己已经拿到的锁,是能够获取成功的,这就是可重入锁。 在需要加锁的代码执行完毕之后,就会调用unlock释放掉锁。在jdk文档之中对,unlock的解释如下: 尝试释放此锁。 如果当前线程是该锁的持有者,则保持计数递减。 如果保持计数现在为零

二叉平衡树

别等时光非礼了梦想. 提交于 2020-01-19 22:53:35
定义 是一个特殊的 二叉查找树 任何结点的两个子树的高度差小于等于1 前5个函数为后面的功能做铺垫,一般的树都有这些函数 1. 结点 public class Node{ int height; //树高 int value; //存值 Node left; Node right; public Node(int value, Node left, Node right) { this.value = value; this.left = left; this.right = right; this.height = 0; //默认树高为0 } } 2. 树高 //树高 public int height(){ return height(root); } private int height(Node node){ if(node != null){ return node.height; } return 0; //默认为0 } 3. 比大小 //比大小 private int max(int a,int b){ return a>b ? a : b; } 4. 找最值及其结点 //最值 public int min(){ Node node = minTree(root); if(node != null){ return node.value; } return 0; }

基于nodeJS的小说爬虫实战

﹥>﹥吖頭↗ 提交于 2020-01-19 22:48:04
背景与需求分析 最近迷恋于王者荣耀、斗鱼直播与B站吃播视频,中毒太深,下班之后无心看书。 为了摆脱现状,能习惯看书,我开始看小说了,然而小说网站广告多而烦,屌丝心态不愿充钱,于是想到了爬虫。 功能分析 为了将网上小说内容获取到本地,进行了功能分析: 1、获取每个章节列表地址 2、更加每个章节地址,获取每个章节的内容 3、将获取的各个章节内容有序的写入文件 技术调研 作为一个前端er,实现爬虫nodeJS必须是首选,虽然数据挖掘Python才是真理 npm依赖如下 1、爬取内容 superagent 2、分析爬取的内容 cheerio 3、并发 async 4、文件写入 fs 编码实现 xiaoshuo.js代码如下 const cheerio = require('cheerio') const superagent = require('superagent') require('superagent-charset')(superagent) const async = require('async'); const fs = require('fs'); let baseUrl = 'http://www.xxx.com/book/14435/'; let infos = []; let urls = []; let titles = []; let fileName = '

Kubernetes学习之路(27)之k8s 1.15.2 部署

北慕城南 提交于 2020-01-19 21:44:43
目录 一、环境准备 二、软件安装 三、部署master节点 四、部署node节点 五、集群状态检测 一、环境准备 IP地址 节点角色 CPU Memory Hostname Docker version 192.168.56.110 master >=2c >=2G k8s-master 19.03 192.168.56.120 node >=2c >=2G k8s-node01 19.03 192.168.56.130 node >=2c >=2G k8s-node02 19.03 所有节点以下操作: 1、设置各主机的主机名,管理节点为k8s-master # hostnamectl set-hostname k8s-master # hostnamectl set-hostname k8s-node01 # hostnamectl set-hostname k8s-node02 2、编辑/etc/hosts文件,添加域名解析 cat <<EOF >> /etc/hosts 192.168.56.110 k8s-master 192.168.56.120 k8s-node01 192.168.56.130 k8s-node02 EOF 3、关闭防火墙、selinux、swap # systemctl stop firewalld # systemctl disable