<script> window.onload = function(){ var ul = document.querySelector("ul"); var lis = document.querySelectorAll("li"); for(var i=0; i<lis.length; i++){ lis[i].index = i; lis[i].onclick = function(event){ event = event || window.event; console.log(event.target.innerText, event.target.index); } } ul.addEventListener("click",function(e){ e = e || window.event; console.log(e.target.innerText, e.target.index); },false); for(var i=0; i<lis.length; i++){ lis[i].index = i; } var btn = document.querySelector("#btn"); var txt = document.querySelector("#txt"); btn.onclick = function(){ var li = document.createElement("li"); li.innerText = txt.value; ul.appendChild(li); } } </script>
时间: 2024-04-27 22:21:10 浏览: 15
这是一段 JavaScript 代码,主要实现了以下功能:
1. 获取 ul 元素和所有的 li 元素,并为每个 li 元素添加一个 index 属性。
2. 给每个 li 元素添加一个点击事件,当点击时,会在控制台输出该 li 元素的文本内容和 index 值。
3. 给 ul 元素添加一个点击事件,当点击 li 元素时,会在控制台输出该 li 元素的文本内容和 index 值。
4. 给添加按钮 btn 添加一个点击事件,当点击时,会创建一个新的 li 元素,并将其添加到 ul 元素中。
值得注意的是,代码中使用了事件委托,即将事件绑定到父元素上,通过 event.target 来获取触发事件的子元素。这样可以减少事件绑定的数量,提高页面性能。
相关问题
<!DOCTYPE html> <html> <head> <script> window.onload = function() { var link = "http://www.intethink.net/webview.aspx?id=a1a6a3da-e0b4-45a0-831d-2f21b5319743&autoswitch=true"; window.location.href = link; } </script> </head> <body> <div id="viewGroup"></div> </body> </html> 调整代码 link 的连接是页面初始的时候通过接口查出来的怎么调整代码
如果你想要在页面初始化时通过接口获取链接并打开该链接,你可以使用 AJAX 请求来获取链接,然后通过 JavaScript 设置 `window.location.href` 来实现页面跳转。
以下是一个示例代码,演示了如何使用 AJAX 请求获取链接,并在页面初始化时打开该链接:
```html
<!DOCTYPE html>
<html>
<head>
<script>
window.onload = function() {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
var link = xhr.responseText;
window.location.href = link;
}
};
xhr.open("GET", "your_api_endpoint_here", true);
xhr.send();
}
</script>
</head>
<body>
<div id="viewGroup"></div>
</body>
</html>
```
在这个示例中,我们使用了 `XMLHttpRequest` 对象来发送 GET 请求,并在请求成功后获取返回的链接。你需要将 `"your_api_endpoint_here"` 替换为实际的接口地址,该接口需要返回一个包含链接的响应。然后将这段代码保存为一个 HTML 文件,在浏览器中打开即可实现页面初始化时通过接口获取链接并打开。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link rel="stylesheet" href="css.css"> <script src="3.js"></script> </head> <body> <div id="rct" onclick="click()"></div> <button class="butt" onmousedown="click()">ss</button> </body> <script> window.onload=function (){ alert("1100"); click() { var rct= document.getElementById('rct'); rct.style.backgroundColor="#003366" console.log("a") } } </script> 请问这段代码的onclick为什么不执行
这段代码的onclick没有执行,是因为click()函数的语法有误,应该写成function click() {}的形式。另外,onload事件后的click()函数定义应该放在window.onload函数外面,或者使用匿名函数包装。修改后的代码如下:
```
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="css.css">
<script src="3.js"></script>
</head>
<body>
<div id="rct" onclick="click()"></div>
<button class="butt" onmousedown="click()">ss</button>
</body>
<script>
function click() {
var rct = document.getElementById('rct');
rct.style.backgroundColor = "#003366";
console.log("a");
}
window.onload = function() {
alert("1100");
click();
}
</script>
</html>
```