Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.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
对不同的div使用相同的javascript_Javascript - Fatal编程技术网

对不同的div使用相同的javascript

对不同的div使用相同的javascript,javascript,Javascript,我有这样的想法: <div id="div1"><?php include 'test.php'; ?></div> <div id="div2"><?php include 'test.php'; ?></div> 如何分别为div1和div2调用myFunction?我的意思是,如果我点击div1中的按钮,myFunction只在该div中完成。我找到了这个javascript关键字,但我无法正确应用它 请不要jQue

我有这样的想法:

<div id="div1"><?php include 'test.php'; ?></div>
<div id="div2"><?php include 'test.php'; ?></div>
如何分别为
div1
div2
调用
myFunction
?我的意思是,如果我点击
div1
中的按钮,
myFunction
只在该div中完成。我找到了
这个
javascript关键字,但我无法正确应用它

请不要jQuery。

检查下面的代码

<button onclick="myFunction.bind(this)">test</button>
测试
检查以下代码

<button onclick="myFunction.bind(this)">test</button>
测试

您可以在函数中添加参数

<div id="div1"><?php $button=1; include 'test.php'; ?></div>
<div id="div2"><?php $button=2; include 'test.php'; ?></div>

和您的php:

<button onclick="myFunction(<?php echo $button;?>)">test</button>

您可以在函数中添加参数

<div id="div1"><?php $button=1; include 'test.php'; ?></div>
<div id="div2"><?php $button=2; include 'test.php'; ?></div>

和您的php:

<button onclick="myFunction(<?php echo $button;?>)">test</button>

您可以使用call方法将上下文传递给函数,如下所示:

<button onclick="myFunction.call(this)">test</button>
测试
测试

您可以使用call方法将上下文传递给函数,如下所示:

<button onclick="myFunction.call(this)">test</button>
测试
测试
这里有一个解决方案:

函数myFunction(ev){
日志(ev.target.parentNode.id);
}

按钮1
按钮2
这里有一个解决方案:

函数myFunction(ev){
日志(ev.target.parentNode.id);
}

按钮1
按钮2

您需要共享
myFunction
的代码:这个按钮是test.php中唯一的东西吗?如果不是,我们可能需要知道里面都是什么。您可以使用
this.parentNode.id
或其他什么,但这完全取决于两个
div
s内部的结构。您应该使用
addEventListener
而不是内联事件。内联事件更难维护,需要在全局范围内公开函数。在
div1
中,还有6个嵌套分区(divA、divB…)和选择下拉列表。
divA
可见。单击任何选项后,将显示
divB
等。相同的内容位于
div id=“div2”
中。我可以使用nextElementSibling逐个显示嵌套分区。但我不知道如何使用关键字“this”或“this.parentNode.id”来确定,如果在
div1
div2
中调用functon,并且在
div1
div2
中一个接一个地显示嵌套的分区,那么您需要共享
myFunction
的代码可能重复:这个按钮实际上是test.php中唯一的东西吗?如果不是,我们可能需要知道里面都是什么。您可以使用
this.parentNode.id
或其他什么,但这完全取决于两个
div
s内部的结构。您应该使用
addEventListener
而不是内联事件。内联事件更难维护,需要在全局范围内公开函数。在
div1
中,还有6个嵌套分区(divA、divB…)和选择下拉列表。
divA
可见。单击任何选项后,将显示
divB
等。相同的内容位于
div id=“div2”
中。我可以使用nextElementSibling逐个显示嵌套分区。但我不知道如何使用关键字“this”或“this.parentNode.id”来确定functon是否在
div1
div2
中被调用,嵌套的分区是否在
div1
div2
中一个接一个地显示,你为什么认为
.bind(this)
会解决他的问题?你为什么认为
.bind(this)
会解决这个问题
能解决他的问题吗?