对不同的div使用相同的javascript

时间:2017-07-19 09:29:39

标签: javascript

我有类似的东西:

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

test.php是:

<button onclick="myFunction()">test</button>

如何为myFunctiondiv1分别调用div2?我的意思是,如果我点击div1中的按钮,myFunction只会在该div中完成。我找到了this javascript关键字,但我无法正确应用它。

请不要jQuery。

4 个答案:

答案 0 :(得分:1)

您可以在函数中添加参数。

<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>

现在您可以使用该参数来了解已按下哪个按钮。

答案 1 :(得分:1)

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

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

然后,在您的函数中,您可以使用this.parentElement来检索div元素。

function myFunction() {
  document.getElementById('result').innerHTML = this.parentElement.id;
}
<div id="div1"><button onclick="myFunction.call(this)">test</button></div>
<div id="div2"><button onclick="myFunction.call(this)">test</button></div>

<div id="result"></div>

答案 2 :(得分:1)

这是一个解决方案:

&#13;
&#13;
function myFunction(ev) {
	console.log(ev.target.parentNode.id);
}
&#13;
<div id="div1">
  <button onclick="myFunction(event)">button 1</button>
</div>
<div id="div2">
  <button onclick="myFunction(event)">button 2</button>
</div>
&#13;
&#13;
&#13;

您可以传递event对象,然后通过该对象接收点击的target及其parentNode,即相应的div

答案 3 :(得分:0)

检查以下代码

tableView.register(UITableViewCell.classForCoder(), forCellReuseIdentifier: "archiveTableViewCell")