4 回答

TA貢獻(xiàn)1963條經(jīng)驗(yàn) 獲得超6個(gè)贊
我認(rèn)為 click() 函數(shù)是 JavaScript 中的保留名稱,請(qǐng)嘗試重命名它。

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
click
未調(diào)用函數(shù)的原因是屬性中的 JavaScript 代碼是在將元素的屬性復(fù)制到屬性的 JavaScript 代碼的上下文中的上下文中執(zhí)行的。所以你的click
函數(shù)隱藏在元素的click
method后面。
您可以使用任何屬性/方法/等重現(xiàn)此效果。按鈕 DOM 元素的。
例如,單擊以下按鈕將導(dǎo)致錯(cuò)誤:Uncaught TypeError: innerHTML is not a function
<script>
? ? function innerHTML(el) {
? ? ? ? console.log(el.innerHTML);
? ? }
</script>
<button onclick="innerHTML(this)">Click Me</button>
請(qǐng)注意,此效果僅適用于屬性字符串內(nèi)的 JavaScript。如果我們使用與 DOM 元素屬性不重疊的函數(shù)名稱,那么我們可以安全地避免此類錯(cuò)誤:
<script>
? ? function handleClick(el) {
? ? ? ? // We can safely call the innerHTML function from within this function
? ? ? ? innerHTML(el);
? ? }
? ? function innerHTML(el) {
? ? ? ? console.log(el.innerHTML);
? ? }
</script>
<button onclick="handleClick(this)">Click Me</button>

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
最好保留干凈的 html
<h3 class="toClone">Some title <button type="button">[toClone]</button></h3>
并在JS函數(shù)中使用onclick
let butonClone = document.querySelector('button')
let myBody = document.querySelector('body')
let toClone = document.querySelector('.toClone')
butonClone.onclick = function clone() {
myBody.append(toClone.parentNode.cloneNode(true))
}

TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊
最好保留干凈的 html
<h3 class="toClone">Some title <button type="button">[toClone]</button></h3>
并在JS函數(shù)中使用onclick
let butonClone = document.querySelector('button')
let myBody = document.querySelector('body')
let toClone = document.querySelector('.toClone')
butonClone.onclick = function clone() {
myBody.append(toClone.parentNode.cloneNode(true))
}
使用
onclik
屬性穿上
this
像這樣的功能onclick="clone(this)"
獲取父節(jié)點(diǎn)
e.parentNode
克隆與
cloneNode(true)
再見!
- 4 回答
- 0 關(guān)注
- 192 瀏覽
添加回答
舉報(bào)