检测调用函数的元素

时间:2016-02-21 13:15:54

标签: javascript jquery

我需要知道我的jQ函数从哪里调用...

在头上:

function call_pl2(){
    $(this).text('some text');
}
身体中的

<p> <script> call_pl2();  </script> </p>
<!--              OR                 -->
<div> <script> call_pl2();  </script> </div>

2 个答案:

答案 0 :(得分:1)

我明白了你的意思,我恐怕你无法从函数中得到你的js函数所在的元素,但每次调用你的函数你都可以使用另一个函数并搜索你的html内容来查看这个函数的位置在里面。我假设这个函数在加载时被称为html代码中的函数。

答案 1 :(得分:1)

您可以将包含的元素显式传递给script,而不是尝试确定哪个元素包含call_pl2()标记(以及扩展名为call_pl2()的特定调用)。参数:

$(function() {

  var call_p12 = function(element) {
    if ($(element).is('p')) {
      $(element).text('here is some text added to a paragraph');
    }
    if ($(element).is('div')) {
      $(element).text('here is some text added to a div');
    }
  }

  $('div, p').each(function() {
    call_p12($(this));
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<p></p>
<div></div>

修改call_p12()函数以交换jQuery is()中更具体的选择器会相对容易。例如is('.someclass')来检查类值而不是标记名称。