Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将字符串变量传递给javascript函数并使用它获取元素_Javascript_Html - Fatal编程技术网

如何将字符串变量传递给javascript函数并使用它获取元素

如何将字符串变量传递给javascript函数并使用它获取元素,javascript,html,Javascript,Html,我有一个JavaScript函数,我想重复使用。我有两个HTML onclick函数调用相同的代码。第一个(实例1)发送“this”,第二个(实例2)发送id值。实例1本身是模态上的关闭按钮,实例2是模态主体内的测试取消按钮 分配href值时,实例1在函数中工作,但实例2不工作,即实例1关闭模式,而实例2不关闭 谁能告诉我哪里出了问题?下面的代码示例 <!-- HTML instance 1 --> <a id="ModalClose" title="Close" onclic

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

分配href值时,实例1在函数中工作,但实例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";
}

X
关
功能关闭模式(ModalObj){
如果(ModalObj的类型=='object'){
var x=document.getElementById(ModalObj.id);
}否则{
var x=document.getElementById(ModalObj);
}
x、 href=“#关闭”;
}

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


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

你的密码。这里的实际问题是什么?@Teemu,实例1关闭模式,而实例2没有。在您的示例中没有关闭模式的代码。链接和按钮都会更改链接的href。请在问题中添加相关代码,并详细解释出现的问题。“不工作”不是一个问题描述。我的理解是,通过应用href元素,它通过转移到另一个不存在的html元素来强制关闭模式。“亲密”只是一个虚构的术语,不是相对的。如果类型为对象,则分配了href且模式消失,如果启动else语句,则href代码完成,但模式不会消失。我希望这能提供一些明确性。谢谢。@Teemu,我不能在评论中将此标记为答案,您介意将其作为答案发布,我可以将其标记为完整并正确地为您评分吗?谢谢