<a>标签的href和onclick属性

  1. 链接的onclick 事件被先执行,其次是href属性下的动作(页面跳转,或 javascript 伪链接);
  2. 假设链接中同时存在hrefonclick,如果想让href 属性下的动作不执行,onclick 必须得到一个false的返回值;
  3. 如果页面过长有滚动条,且希望通过链接的 onclick 事件执行操作。应将它的 href 属性设为 javascript:void(0);,而不要是 #,这可以防止不必要的页面跳动;
  4. 如果在链接的 href属性中调用一个有返回值的函数,当前页面的内容将被此函数的返回值代替;
  5. 在按住Shift键的情况下会有所区别。
  6. 今天我遇到的问题,在IE6.0里以href的形式访问不到parentNode。
  7. 尽量不要用javascript:协议做为A的href属性,这样不仅会导致不必要的触发window.onbeforeunload事件,在IE里面更会使gif动画图片停止播放。
  8. 在Javascript中void是一个操作符,该操作符指定要计算一个表达式但是不返回值。

        void 操作符用法格式如下: 1. javascript:void (expression) 2. javascript:void expression

expression 是一个要计算的 Javascript 标准的表达式。表达式外侧的圆括号是选的,但是写上去是一个好习惯。 (实现版本 Navigator 3.0)

        你以使用 void 操作符指定超级链接。表达式会被计算但是不会在当前文档处装入任何内容。

        下面的代码创建了一个超级链接,当用户点击以后不会发生任何事。当用户链接时,void(0) 计算为 0,但 Javascript 上没有任何效果。

<A HREF="javascript:void(0)">单此处什么也不会发生</A>

        下面的代码创建了一个超级链接,用户单击时会提交表单。

<A HREF="javascript:void(document.form.submit())">
单此处提交表单</A>

        下面代码则执行了subgo()函数,

<a href="javascript:void(0)" οnclick="subgo()">点我</a>

        在这里,javascript:void(0),没启实质上的作用,它仅仅是一个死链接,执行的函数是subgo()。

<a href="#" οnclick="subgo()">点我</a>与<a href="javascript:void(0)" οnclick="subgo()">点我</a>区别。

        实际上 #包含了一个位置信息默认的锚是#top 也就是网页的上端 ,而javascript:void(0) 仅仅表示一个死链接,没有任何信息。所以调用脚本的时候最好用void(0)

        href一般是指向一个URL地址,也可以调用javascript ,如href="javascript:xxx();",文档中推荐这样写:<a href=" javascript:void(0)" οnclick="xxx();">xx</a>,但是这种方法在复杂环境有时会产生奇怪的问题,尽量不要用javascript:协议做为A的href属性,这样不仅会导致不必要的触发window.onbeforeunload事件,在IE里面更会使gif动画图片停止播放。

       链接的 onclick 事件被先执行,其次是 href 属性下的动作(页面跳转,或 javascript 伪链接),如果不想让href 属性下的动作执行,onclick 需要要返回 false ,一般是这样写οnclick="xxx();return false;".

### 网上点餐系统中菜品查询操作的HTML结构交互实现流程 #### HTML结构设计 在设计网上点餐系统的菜品查询页面时,可以使用HTML5中的多种语义化标签来构建清晰的结构。以下是一个典型的HTML结构示例: ```html <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>菜品查询</title> </head> <body> <!-- 页面头部 --> <header> <h1>欢迎来到我们的餐厅</h1> <img src="logo.png" alt="餐厅Logo"> <nav> <ul> <li><a href="#home">首页</a></li> <li><a href="#menu">菜单</a></li> <li><a href="#contact">联系我们</a></li> </ul> </nav> <form id="search-form"> <input type="text" id="search-input" placeholder="请输入菜品名称或关键词"> <button type="submit">搜索</button> </form> </header> <!-- 查询结果展示区 --> <section id="dish-results"> <h2>查询结果</h2> <div class="dish-item"> <img src="dish1.jpg" alt="菜品图片"> <span class="dish-name">宫保鸡丁</span> <span class="dish-price">¥28</span> </div> <div class="dish-item"> <img src="dish2.jpg" alt="菜品图片"> <span class="dish-name">鱼香肉丝</span> <span class="dish-price">¥30</span> </div> </section> <!-- 分页功能 --> <footer> <ul class="pagination"> <li><button onclick="prevPage()">上一页</button></li> <li><button onclick="nextPage()">下一页</button></li> </ul> </footer> </body> </html> ``` 上述代码中,`<header>` 元素用于放置页面标题、Logo以及导航菜单[^2]。同时,`<form>` 标签内的输入框按钮构成了简单的搜索表单,允许用户输入关键词进行查询。 #### JavaScript交互处理 为了实现动态的菜品查询功能,可以结合JavaScript对用户的输入做出响应。以下是一个简单的交互逻辑实现: ```javascript document.getElementById('search-form').addEventListener('submit', function(event) { event.preventDefault(); // 阻止表单默认提交行为 const query = document.getElementById('search-input').value; fetchDishes(query); // 调用函数发送异步请求 }); function fetchDishes(query) { fetch(`/api/search?q=${encodeURIComponent(query)}`) .then(response => response.json()) .then(data => displayDishes(data)) .catch(error => console.error('Error:', error)); } function displayDishes(dishes) { const resultsContainer = document.getElementById('dish-results'); resultsContainer.innerHTML = '<h2>查询结果</h2>'; dishes.forEach(dish => { const dishItem = document.createElement('div'); dishItem.className = 'dish-item'; dishItem.innerHTML = ` <img src="${dish.image}" alt="菜品图片"> <span class="dish-name">${dish.name}</span> <span class="dish-price">¥${dish.price}</span> `; resultsContainer.appendChild(dishItem); }); } ``` 上述代码通过监听表单提交事件,捕获用户输入的查询条件,并调用 `fetchDishes` 函数向后端发送请求。返回的数据经过解析后,利用 `displayDishes` 函数动态生成菜品列表并插入到页面中。 #### CSS样式设计 为了提升用户体验,可以通过CSS对页面元素进行美化: ```css header { background-color: #f4f4f4; padding: 20px; text-align: center; } header img { width: 100px; height: auto; } #search-form { margin-top: 20px; } .dish-item { border: 1px solid #ccc; padding: 10px; margin: 10px 0; display: flex; align-items: center; } .dish-item img { width: 80px; height: auto; margin-right: 10px; } .dish-name { font-weight: bold; } .pagination button { margin: 5px; padding: 5px 10px; } ``` #### 数据库与后端支持 后端需要提供一个API接口,接收前端传来的查询参数,并根据条件从数据库中检索相关数据。例如,使用SQL语句实现模糊匹配查询[^3]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值