[英]Dynamically create element but use <a href> instead of a button onClick
我打算為我的表單重復使用W3Schools中描述的HTML DOM的create元素方法。
function myFunction() { var btn = document.createElement("BUTTON"); var t = document.createTextNode("CLICK ME"); btn.appendChild(t); document.body.appendChild(btn); }
<p>Click the button to make a BUTTON element with text.</p> <button onclick="myFunction()">Try it</button>
在上面的示例中, button
用於創建HTML元素。 如何更改它以使用href鏈接( <a>
標簽)代替按鈕的click事件?
您可以在引用W3Schools HTML DOM的同一示例中這樣編寫:
<!DOCTYPE html>
<html>
<body>
<p>Click the button to make a BUTTON element with text.</p>
<button onclick="myFunction()">Try it</button>
<script>
function myFunction() {
var btn = document.createElement("a");
btn.innerHTML="click";
var t = btn.setAttribute("href","https://www.google.com");
btn.setAttribute("target","_blank");
document.body.appendChild(btn);
}
</script>
</body>
</html>
將標記更改為錨,將href設置為“ javascript:void(0)” ,以防止瀏覽器執行導航。
<!DOCTYPE html>
<html>
<body>
<p>Click the link to make a BUTTON element with text.</p>
<a href="javascript:void(0)" onclick= "myFunction()" > Try it</a>
<script>
function myFunction() {
var btn = document.createElement("BUTTON");
var t = document.createTextNode("CLICK ME");
btn.appendChild(t);
document.body.appendChild(btn);
}
</script>
</body>
</html>
我是否正確理解您要使用標記代替引發事件的元素的元素?
基本上,您可以像示例中那樣進行操作:
<a onclick="myFunction()">Try it</a>
您還可以給-tag一個href屬性。 但是在這里您已經看到了此“解決方案”的問題。 onclick函數和href鏈接都將被觸發,並且您肯定會有不想要的行為。
我還假設您只是希望將其設置為頁面上任何鏈接的樣式,甚至不使用href屬性。 然后使用上面的示例將起作用。 就個人而言,我仍然更喜歡使用-tag並自己設置樣式,因為該標簽僅用於鏈接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.