我想使用tagName获取不带id,class或jQuery的按钮文本,并将这些文本写入p标签。我的简单测试代码如下。 希望您了解我正在尝试做的事情。
<button>Button 1</button>
<button>Button 2</button>
<p id="result" ></p>
<script type="text/javascript">
function tagName(tag){
var buttons = document.getElementsByTagName(tag);
var totalButton = buttons.length;
for(var i=0;i<totalButton;i++){
// here i want to check which button clicked?
}
};
tagName("button").onclick = function(){
document.getElementById("result").innerHTML = tagName("button").innerHTML;
}
</script>
您能帮我完成这段代码吗? 注意:我只有一个功能tagName()
答案 0 :(得分:1)
尝试这样的事情:
var obj = document.getElementsByTagName("button");
for (let item of obj) {
item.onclick = function(){
document.getElementById("result").innerHTML = item.innerHTML;
}
}
答案 1 :(得分:1)
<html>
<head>
<script>
function tagName(tag) {
var buttons = document.getElementsByTagName(tag);
var totalButton = buttons.length;
var r = []
for (var i = 0; i < totalButton; i++) {
// here i want to check which button clicked?
r.push(buttons[i])
}
return r;
};
function onLoad() {
tagName("button").forEach(function (item, idx) {
item.addEventListener('click', function () {
document.getElementById("result").innerHTML = item.innerHTML;
});
});
}
</script>
</head>
<body onload="onLoad()">
<button>Button 1</button>
<button>Button 2</button>
<p id="result"></p>
<script type="text/javascript">
</script>
</body>
</html>
答案 2 :(得分:1)
我相信这会做您想要的。它使用了更现代的Javascript,因此不适用于旧版本的IE。
<button>Button 1</button>
<button>Button 2</button>
<p id="result" ></p>
<script type="text/javascript">
function setButtonEvents(){
let buttons = document.querySelectorAll("button"); // (returns a nodeList, like an array)
for(let b of buttons){
// here i want to check which button clicked?
b.onclick=buttonClicked;
}
};
function buttonClicked(e) {
document.getElementById("result").innerHTML = e.target.innerHTML;
}
setButtonEvents();
</script>
答案 3 :(得分:1)
如果您要根据单击的按钮来更改p
标签文本,则可以像这样实现。
<script type="text/javascript">
window.onclick = function(e) {
var isButton = e.target.tagName;
if (isButton === "BUTTON") {
var text = e.target.innerText
document.getElementById("result").innerHTML = text;
}
};