表单默认值与交互处理
在表单设计中,利用 value 属性配合事件监听可以实现友好的占位提示效果。对于普通输入框,设置初始 value 后,通过 onfocus 清空内容,onblur 恢复默认值即可。
<form action="">
<input type="text" class="name" value="姓名 Name" onfocus="this.value='';" onblur="this.value='姓名 Name'" />
<input type="submit" class="sublime" value="提交"/>
</form>
需注意,<textarea> 标签没有 value 属性,其内容直接写在标签之间。因此处理逻辑需改为判断当前文本是否为空或默认提示语:
<textarea class="words" onfocus="if(value=='请输入您需要留言的内容'){value=''}" onblur="if (value ==''){value='请输入您需要留言的内容'}">请输入您需要留言的内容</textarea>
链接触发 JavaScript 的规范写法
在 <a> 标签中调用 JS 函数时,为避免页面跳转或刷新,推荐以下几种写法。核心在于阻止默认行为并执行脚本:
<a href="javascript:void(0);" onclick="js_method()">
<a href="javascript:;" onclick="js_method()">
<a href="#" onclick="js_method();return false">
清除浮动元素的三种方案
父元素包含浮动子元素时,容易出现高度塌陷问题。常见的解决方案有三种:
- 为父元素设置
overflow: hidden; - 让父元素也浮动,并设置宽度为
100%,后续元素添加clear: both; - 在父元素末尾添加非浮动子元素,或使用
clearfix伪类技巧。
JavaScript 数组排序原理
sort() 方法内部机制常被误解。它实际上是通过比较函数返回值的正负来决定是否交换元素位置。若返回正数则交换,负数或零则不交换,这本质上类似于冒泡排序的逻辑。
以数组 [10, 5, 40, 25, 1000, 1] 为例,传入比较函数后:
- 当
a > b时返回正数,两数交换; - 重复此过程,较大的元素会逐步'冒泡'至末尾。
如果直接传入数字 1 作为参数(如 sort(1)),结果则是数组顺序反转,功能等同于 reverse()。理解这一机制有助于更灵活地控制数据展示顺序。

