首页 > 解决方案 > 如何将字符串变量传递给 javascript 函数并使用它来获取元素

问题描述

我有一个想要重用的 JavaScript 函数。我有 2 个 HTML onclick 函数调用相同的代码。第一个(实例 1)发送“this”,第二个(实例 2)发送 id 值。实例 1 是模态本身上的关闭按钮,实例 2 是模态体内的测试取消按钮。

实例 1 在分配 href 值时在函数中工作,但实例 2 不是,即实例 1 关闭模式而实例 2 不关闭。

谁能告诉我我哪里出错了?下面的代码示例。

<!-- HTML instance 1 -->
<a id="ModalClose" title="Close" onclick="CloseModal(this)" 
class="close">X</a>

<!-- HTML instance 2 -->
<button type="button" id="test123" 
onclick="CloseModal('ModalClose')">Close</button>

function CloseModal(ModalObj) {

    if (typeof ModalObj === 'object') {
        var x = document.getElementById(ModalObj.id);
    } else { 
        var x = document.getElementById(ModalObj); 
    }
    x.href = "#close";
}

标签: javascripthtml

解决方案


无论单击链接还是单击按钮,您的 JavaScript 代码都在有效地执行相同的操作,即它向链接添加了一个 href。行为的差异来自这些元素的默认操作。按钮没有特定的默认操作(在表单之外),但链接导航到其 href 属性中给定的位置。

现在,当您单击按钮时,位置不会发生任何变化。要解决此问题,您必须在更改链接后手动单击链接。添加x.click();为单击处理函数中的最后一行以单击链接并获取默认行为。


推荐阅读