[英]Get element from which function is called in JavaScript
是否可以從JavaScript中從哪個函數中獲取HTML元素?
例如,我的HTML中有這個:
<script type="text/javascript">
function myFunction() {
var myContainer = getElementFromWhichFunctionIsCalled(); // Possible?
(myContainer.id == 'my-container'); // TRUE
}
</script>
<div id="my-container">
<script type="text/javascript">myFunction();</script>
</div>
謝謝。
您在這里調用它的方式是,當myFunction
運行時,文檔只會解析到#my-container
的script
元素。 因此,您可以使用
var scripts = document.getElementsByTagName('script');
var currentScript = scripts[scripts.length - 1];
var myContainer = currentScript.parentNode;
得到元素。
我終於想出了這個解決方案:
希望它可以幫助某人。
/**
* Creating a temporary element to fetch it's parent element.
*/
function getElementFromWhichFunctionIsCalled() {
// Generating unique ID for temporary element.
var trickElementId = 'trick-element-' + Math.floor(Math.random() * 100000);
// Adding temporary element to the DOM.
document.write('<div id="' + trickElementId + '"></div>');
// Getting hold of added element.
var trickElement = document.getElementById(trickElementId);
// Getting parent element of our trick element.
var foundElement = trickElement.parentNode;
// Cleaning up (removing trick element from the DOM).
foundElement.removeChild(trickElement);
return foundElement;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.