我有类似的东西:
<div id="div1"><?php include 'test.php'; ?></div>
<div id="div2"><?php include 'test.php'; ?></div>
和test.php
是:
<button onclick="myFunction()">test</button>
如何为myFunction
和div1
分别调用div2
?我的意思是,如果我点击div1
中的按钮,myFunction
只会在该div中完成。我找到了this
javascript关键字,但我无法正确应用它。
请不要jQuery。
答案 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)
这是一个解决方案:
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;
您可以传递event
对象,然后通过该对象接收点击的target
及其parentNode
,即相应的div
。
答案 3 :(得分:0)
检查以下代码
tableView.register(UITableViewCell.classForCoder(), forCellReuseIdentifier: "archiveTableViewCell")