关于dom的一些基础知识-来自w3shool.com.cn

本文详细介绍JavaScript操作HTML元素、属性及样式的多种方法,包括通过id、标签名或类名查找元素,修改元素内容、属性及样式,响应事件,以及创建、删除元素等。此外还介绍了JavaScript对象的创建、属性与方法的访问,以及常用内置对象的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • JavaScript 能够改变页面中的所有 HTML 元素
  • JavaScript 能够改变页面中的所有 HTML 属性
  • JavaScript 能够改变页面中的所有 CSS 样式
  • JavaScript 能够对页面中的所有事件做出反应

查找 HTML 元素

通常,通过 JavaScript,您需要操作 HTML 元素。

为了做到这件事情,您必须首先找到该元素。有三种方法来做这件事:

  • 通过 id 找到 HTML 元素  
    document.getElementById("id")
  • 通过标签名找到 HTML 元素
    getElementsByTagName("TagName")
  • 通过类名找到 HTML 元素


改变 HTML 内容

修改 HTML 内容的最简单的方法时使用 innerHTML 属性。


改变 HTML 属性

如需改变 HTML 元素的属性,请使用这个语法:

document.getElementById(id).attribute=new value

实例

本例改变了 <img> 元素的 src 属性:

<!DOCTYPE html>
<html>
<body>

<img id="image" src="smiley.gif">

<script>
document.getElementById("image").src="landscape.jpg";
</script>

</body>
</html>



改变 HTML 样式

如需改变 HTML 元素的样式,请使用这个语法:

document.getElementById(id).style.property=new style


Style 对象的属性:

http://www.w3school.com.cn/jsref/dom_obj_style.asp

使用 HTML DOM 来分配事件

HTML DOM 允许您通过使用 JavaScript 来向 HTML 元素分配事件:

实例

向 button 元素分配 onclick 事件:

<button id="myBtn">点击这里</button>

<script>
document.getElementById("myBtn").οnclick= function(){displayDate()}; --注意表达方式
function displayDate()
{
document.getElementById("demo").innerHTML=Date();
}
</script>

onload 和 onunload 事件

onload 和 onunload 事件会在用户进入或离开页面时被触发。

onload 事件可用于检测访问者的浏览器类型和浏览器版本,并基于这些信息来加载网页的正确版本。

onload 和 onunload 事件可用于处理 cookie。

实例

<body οnlοad="checkCookies()">

onchange 事件

onchange 事件常结合对输入字段的验证来使用。

下面是一个如何使用 onchange 的例子。当用户改变输入字段的内容时,会调用 upperCase() 函数。

实例


<script>
function myFunction()
{
var x=document.getElementById("fname");     
x.value=x.value.toUpperCase();
}
</script>
</head>
<body>


请输入英文字符:<input type="text" id="fname" onchange="myFunction()">  注意:是会在离开时才出发
<p>当您离开输入字段时,会触发将输入文本转换为大写的函数。</p>       


onmouseover 和 onmouseout 事件

onmouseover 和 onmouseout 事件可用于在用户的鼠标移至 HTML 元素上方或移出元素时触发函数。

实例

<body>

<div οnmοuseοver="mOver(this)" οnmοuseοut="mOut(this)" style="background-color:green;width:120px;height:20px;padding:40px;color:#ffffff;">把鼠标移到上面</div>


<script>
function mOver(obj)
{
obj.innerHTML="谢谢"
}


function mOut(obj)
{
obj.innerHTML="把鼠标移到上面"
}
</script>


</body>


onmousedown、onmouseup 以及 onclick 事件

onmousedown, onmouseup 以及 onclick 构成了鼠标点击事件的所有部分。首先当点击鼠标按钮时,会触发 onmousedown 事件,当释放鼠标按钮时,会触发 onmouseup 事件,最后,当完成鼠标点击时,会触发 onclick 事件。


创建新的 HTML 元素

如需向 HTML DOM 添加新元素,您必须首先创建该元素(元素节点),然后向一个已存在的元素追加该元素。

实例


<div id="div1">
<p id="p1">这是一个段落</p>
<p id="p2">这是另一个段落</p>
</div>

<script>
var para=document.createElement("p");  //创建新节点
var node=document.createTextNode("这是新段落。");  //创建新的内容节点
para.appendChild(node);  //将新创建的内容节点挂到新节点上

var element=document.getElementById("div1");  //获得div节点,这个是要挂在的节点的父节点
element.appendChild(para);  //将新节点挂在他的父节点上
</script>


删除已有的 HTML 元素

如需删除 HTML 元素,您必须首先获得该元素的父元素:

实例

<div id="div1">
<p id="p1">这是一个段落。</p>
<p id="p2">这是另一个段落。</p>
</div>

<script>
var parent=document.getElementById("div1");	//获得父节点
var child=document.getElementById("p1");	//获得子节点
parent.removeChild(child);	//利用父节点,删除子节点
</script>

只获得子节点也可以

提示:如果能够在不引用父元素的情况下删除某个元素,就太好了。

不过很遗憾。DOM 需要清楚您需要删除的元素,以及它的父元素。

这是常用的解决方案:找到您希望删除的子元素,然后使用其 parentNode 属性来找到父元素:

var child=document.getElementById("p1");
child.parentNode.removeChild(child);


JavaScript 对象

对象只是带有 属性 方法 的特殊数据类型。

JavaScript 提供多个内建对象,比如 String、Date、Array 等等。

访问对象的属性

属性是与对象相关的值。

访问对象属性的语法是:

objectName.propertyName
比如:
var s = "abcd";
document.write(s.length); //s.length就是s的属性

访问对象的方法

方法是能够在对象上执行的动作。

您可以通过以下语法来调用方法:

objectName.methodName()

这个例子使用了 String 对象的 toUpperCase() 方法来将文本转换为大写:

var message="Hello world!";
var x=message.toUpperCase();


创建 JavaScript 对象

通过 JavaScript,您能够定义并创建自己的对象。

创建新对象有两种不同的方法:

  1. 定义并创建对象的实例
  2. 使用函数来定义对象,然后创建新的对象实例

创建直接的实例 //方法1

这个例子创建了对象的一个新实例,并向其添加了四个属性:

实例

person=new Object();	//创建一个对象
person.firstname="Bill";	//给对象的属性赋值,说对象有什么属性就有什么属性
person.lastname="Gates";	//这个还是挺nb的。不需要像java那样先定义类模板
person.age=56;
person.eyecolor="blue";

替代语法(使用对象 literals): //方法1的变体

实例

person={firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"};	//像定义数组一样。。。。

使用对象构造器 //方法2

本例使用函数来构造对象: //相当于写一个构造函数,然后调用构造函数来创建对象

实例

<script>
function person(firstname,lastname,age,eyecolor) //构造函数
{
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;
}

var myFather=new person("Bill","Gates",56,"blue");	//调用构造函数创建对象
var myMother=new person("Steve","Jobs",48,"green");


document.write(myFather.firstname + " is " + myFather.age + " years old.");
</script>

把属性添加到已经存在的 JavaScript 对象中

直接添加即可
person.firstname="Bill";
person.lastname="Gates";
person.age=56;
person.eyecolor="blue";

x=person.firstname;


把方法添加到 JavaScript 对象

方法只不过是附加在对象上的函数。

在构造器函数内部定义对象的方法: //在构造方法中添加方法,这个也挺神奇的哈。。。

function person(firstname,lastname,age,eyecolor)
{
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;

this.changeName=changeName;
function changeName(name)
{
this.lastname=name;
}
}

JavaScript for...in 循环 //遍历对象中的所有属性

JavaScript for...in 语句循环遍历对象的属性。

实例

循环遍历对象的属性:

var person={fname:"Bill",lname:"Gates",age:56};	//定义一个对象
var txt="";
for (x in person)	//遍历这个对象的所有属性,注意表达方式,x代表的是person中属性的序号
  {
  txt=txt + person[x];//这样表达类似于数组了,经测试,是可以的。
  }


JavaScript 数字

JavaScript 数字可以使用也可以不使用小数点来书写:

实例

var pi=3.14;    // 使用小数点
var x=34;       // 不使用小数点

极大或极小的数字可通过科学(指数)计数法来写:

实例

var y=123e5;    // 12300000	//后面有多少个0
var z=123e-5;   // 0.00123	//小数点后面有多少位有效数字

精度

整数(不使用小数点或指数计数法)最多为 15 位。

小数的最大位数是 17,但是浮点运算并不总是 100% 准确:

实例


<script>

var x;
document.write("<p>只有 17 位: ");
x=12345678901234567890;
document.write(x + "</p>"); //输出: 12345678901234567000,说明只有17为有效数字

document.write("<p>0.2 + 0.1 = ");
x=0.2+0.1;
document.write(x + "</p>"); //输出: 0.2 + 0.1 = 0.30000000000000004说明并不一定准确

document.write("<p>可分别乘以 10 并除以 10 : "); //可以用这种方法来避免这种错误。
x=(0.2*10+0.1*10)/10;
document.write(x +"</p>");

</script>

八进制和十六进制

如果前缀为 0,则 JavaScript 会把数值常量解释为八进制数,如果前缀为 0 和 "x",则解释为十六进制数。

实例

var y=0377;
var z=0xFF;

数字属性和方法

属性:

  • MAX VALUE
  • MIN VALUE
  • NEGATIVE INFINITIVE
  • POSITIVE INFINITIVE
  • NaN
  • prototype
  • constructor

方法:

  • toExponential()
  • toFixed()
  • toPrecision()
  • toString()
  • valueOf()

这个网址给出了如上Number的属性和方法的用法,需要时可以学习一下。

JavaScript String(字符串)对象

这个网址给出了 String的实例对象的属性和方法的用法。差不多都会。需要着重学习的是替换和搜索方法中的正则表达式的使用

JavaScript Date(日期)对象


定义日期

Date 对象用于处理日期和时间。

可以通过 new 关键词来定义 Date 对象。以下代码定义了名为 myDate 的 Date 对象:

var myDate=new Date() 

注释:Date 对象自动使用当前的日期和时间作为其初始值。


操作日期

通过使用针对日期对象的方法,我们可以很容易地对日期进行操作。

在下面的例子中,我们为日期对象设置了一个特定的日期 (2008 年 8 月 9 日):

var myDate=new Date()
myDate.setFullYear(2008,7,9)		//这个例子有点意思,虽然没什么用吧。。。

注意:表示月份的参数介于 0 到 11 之间。也就是说,如果希望把月设置为 8 月,则参数应该是 7


在下面的例子中,我们将日期对象设置为 5 天后的日期:

var myDate=new Date()
myDate.setDate(myDate.getDate()+5)

注意:如果增加天数会改变月份或者年份,那么日期对象会自动完成这种转换。


比较日期

日期对象也可用于比较两个日期。 //日期也可以比较


这个网址是  日期  的属性和方法的使用方法。可以进一步学习时使用。


定义数组

数组对象用来在单独的变量名中存储一系列的值。

我们使用关键词 new 来创建数组对象。下面的代码定义了一个名为 myArray 的数组对象:

var myArray=new Array()

有两种向数组赋值的方法(你可以添加任意多的值,就像你可以定义你需要的任意多的变量一样)。

1:

var mycars=new Array()
mycars[0]="Saab"
mycars[1]="Volvo"
mycars[2]="BMW"

也可以使用一个整数自变量来控制数组的容量:

var mycars=new Array(3)
mycars[0]="Saab"
mycars[1]="Volvo"
mycars[2]="BMW"

2:

var mycars=new Array("Saab","Volvo","BMW")

数组的值也可以用for in的方法遍历,如同对象的属性一样
<script type="text/javascript">
var x
var mycars = new Array()
mycars[0] = "Saab"
mycars[1] = "Volvo"
mycars[2] = "BMW"


for (x in mycars) //注意:这里面的x不是mycars的值,而是他的index
{
document.write(mycars[x] + "<br />") //所以这里是这样一个用法。
}
</script>


这个网址是  数组  的属性和方法的使用方法。可以进一步学习时使用。



























内容概要:本文详细探讨了杯形谐波减速器的齿廓修形方法及寿命预测分析。文章首先介绍了针对柔轮与波发生器装配时出现的啮合干涉问题,提出了一种柔轮齿廓修形方法。通过有限元法装配仿真确定修形量,并对修形后的柔轮进行装配和运转有限元分析。基于Miner线性疲劳理论,使用Fe-safe软件预测柔轮寿命。结果显示,修形后柔轮装配最大应力从962.2 MPa降至532.7 MPa,负载运转应力为609.9 MPa,解决了啮合干涉问题,柔轮寿命循环次数达到4.28×10⁶次。此外,文中还提供了详细的Python代码实现及ANSYS APDL脚本,用于柔轮变形分析、齿廓修形设计、有限元验证和疲劳寿命预测。 适合人群:机械工程领域的研究人员、工程师,尤其是从事精密传动系统设计和分析的专业人士。 使用场景及目标:①解决杯形谐波减速器中柔轮与波发生器装配时的啮合干涉问题;②通过优化齿廓修形提高柔轮的力学性能和使用寿命;③利用有限元分析和疲劳寿命预测技术评估修形效果,确保设计方案的可靠性和可行性。 阅读建议:本文涉及大量有限元分析和疲劳寿命预测的具体实现细节,建议读者具备一定的机械工程基础知识和有限元分析经验。同时,读者可以通过提供的Python代码和ANSYS APDL脚本进行实际操作和验证,加深对修形方法和技术路线的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值