有人能给我解释一下这个HTML/Javascript部分吗

Can someone explain to me this HTML / Javascript section?

本文关键字:HTML Javascript 一下 解释      更新时间:2023-09-26

我按照教程进行了六次修订:http://sixrevisions.com/tutorials/web-development-tutorials/psdhtml-conversion-elegant-and-simple-css3-web-layout/

然而,我遇到了一个问题。我主要是从逆向工程的各种教程中学习html/javascript,但我已经了解了我几天来一直在尝试理解的部分代码。。这是我到目前为止得到的。

 function clearText(field)

声明函数,给它一个名称"clearText",并声明它将是一个文本字段。

if (field.defaultValue == field.value) field.value = '';

如果文本字段的默认值等于"value"(可以稍后设置的字符串变量?)

全代码

  function clearText(field)
  {
    if (field.defaultValue == field.value) field.value = '';
    else if (field.value == '') field.value = field.defaultValue;
  }

有人能用一个16岁的孩子能理解的方式来分解一下吗?我确实了解if语句的结构,但我不清楚这里到底发生了什么。

clearText是一个将字段作为参数的函数。

字段是一个具有两个属性的对象:defaultValue和value。

如果其defaultValue等于其值,则将其值设置为"。

如果其值为",则将其defaultValue放入其值中。

从表面上看,field.value是html字段的实际值(它可以是密码、文本输入、select,但可能不确定最新的值)。我不确定defaultValue是HTML元素中的标准值,还是程序员预先填充的(用其他javascript代码)。

如果您有一个测试对象,可能会更容易地可视化正在发生的事情。

var testFieldOne = {defaultValue: 'test', value: ''}
var testFieldTwo = {defaultValue: 'test', value: 'test'}
// 'value' is an empty string, the function will change it to 'test'
clearText(testFieldOne); 
console.log(testFieldOne.value); // Prints 'test'
// 'value' is the same as 'default', so it will be set to an empty string.
clearText(testFieldTwo); 
console.log(testFieldTwo.value); // Prints ''

您可以在输入字段中显示默认文本,以指导用户该输入字段的用途。但您不想提交默认文本进行处理。所以你看,如果当前字段值与你的defolt文本相同。如果是这种情况,则清除输入字段,这样您的数据处理就知道没有输入。

在教程中,默认值设置为"搜索"。如果用户聚焦或模糊文本字段,此功能将清空默认值"搜索"中的文本字段,如果文本字段已为空,则会再次显示"搜索"。///顺便说一句,我是13:-)

当您有一个文本区域(或输入标记)时,Javascript自动执行的一件事就是获取其中的内容,并将其存储在一个名为value的变量中。所以,如果你有一个这样的文本区域:

<form name="form1">
<textarea name="textarea1">
This is a sentence inside of a textbox.
</textarea>
</form>

你可以在Javascript中获得它的值,如下所示:

document.form1.textarea1.value

将返回:

"This is a sentence inside of a textbox."

话虽如此,clearText函数接受字段作为值,所以如果我们这样调用它:

clearText(document.form1.textarea1)

这意味着,clearText内部的"field"变量现在等于document.form1.textarea1,可以作为一种简短的表达方式。这意味着,如果我们想找到文本区域内的内容,我们现在可以做:

field.value

它将再次返回:

"This is a sentence inside of a textbox."

因此,clearText首先使用if语句来检查文本区域的当前值(这是文本框中的一个句子)是否等于其默认值。如果是,则会使文本区域为空。如果是相反的方式,它会将文本区域设置为包含其默认文本。如果两者都不适用,什么都不会发生。本质上,它在文本框为空或默认之间来回切换。

顺便说一句,我不认为你在"逆向工程"任何教程。"逆向工程"将涉及从一个程序中取回代码,而你不应该从中取回代码。任何人都可以阅读Javascript。