js怎么获取父函数的event

js怎么获取父函数的event,第1张

js对于函数的定义是非常松,即使你在函数定义时未写任何参数,或者你定义的参数有多个,但是你调用时,一个参数也不填,也不会出错的。

因为js函数内默认有个变量,保存你的入参叫:arguments,

他是一个数组,下标从0开始,

所以获取event可以写成

function eventTest(){

var event = windowevent||arguments[0];

//target 就是这个对象

target = eventsrcElement||eventtarget,

//这个对象的值

targetValue = targetvalue;

}

1

2

3

4

5

6

7

1

2

3

4

5

6

7

当然,有的时候需要给函数传入几个参数,这时如果要用想用到event的话可以这么写

function eventTest(a,b){

var event = windowevent || argumentscalleecallerarguments[0]

//target 就是这个对象

target = eventsrcElement||eventtarget,

//这个对象的值

targetValue = targetvalue;

}

1

2

3

4

5

6

7

1

2

3

4

5

6

7

如果传入了参数却如第一种写法的话,则arguments中将会传入传入的参数,这时获取的arguments[0]就会是第一个传入的参数了。

鉴于此,故还是都用第二中方法获取更为稳妥。

在js中,我们时常用到用iframe做系统框架,在子页面也,父页面之间的值传递是一个问题,下面是js获取父窗体和子窗体的对象js:

1在iframe子页面中获取父页面的元素

a>windowparentdocument这个是获取父页面document中的对象;

b>如果要获取父页面js中的方法:windowparentxxxx();xxxx()为方法;

2在父页面中获取iframe子页面中的元素:

a>

var child =

documentgetElementByIdx_x("mainFrame")contentWindow;//mainFrame这个id是父页面iframe的id

childdocument;//获取子页面中的document对象;

<div ng-app="myModule">

<h3>请分别修改父、子作用域表单里的值</h3>

<div ng-controller="myController">

父作用域:<br/>

<input type="text" ng-model="name" /><br/>

<input type="text" ng-model="sex" /><br/>

<input type="button" ng-click="say()" value="点击执行父域的say方法" /><br/>

子作用域:<br/>

<my-directive my-name="{{name}}" my-sex="sex" get-name='say()'></my-directive><br/>

</div>

</div>

<script src="/angular-158/angularjs"></script>

<script type="text/javascript">

var myModule = angularmodule("myModule", []);

myModulecontroller("myController", ['$scope', function($scope){

$scopename = "wangmeijian";

$scopesex = "boy";

$scopesay = function(){

alert( $scopename +" is a"+ $scopesex )

}

}])

myModuledirective("myDirective", function(){

return {

restrict: "EA",

scope: {

myName: "@",

mySex: "=",

getName: "&"

},

template: "<input type='text' ng-model='myName' /><br/>"+

"<input type='text' ng-model='mySex' /><br/>"+

"<input type='button' ng-click='getName()' value='点击执行子域的say方法' />",

}

})

</script>

//传入参数:需要遍历的对象,需要匹配的id,获取所有的父级节点的Id

        function findIdList(data2, id, children = 'children', level = 0) {

  var arrRes = [];

  let obj = {

      id: 0,

      [children]: data2

  }

  let rev = (data, id, level) => {

    if (!data || !data[children] || !data[children]length) {

      return;

    }

    for (var i = 0; i < data[children]length; i++) {

      let item = data[children][i];

      if (itemid == id) {

        // 将匹配到的结果保存到数组

        arrResunshift({ level, activeId: itemid });

        // 递归它的父级

        rev(obj, dataid, 0);

        break;

      } else if (item[children] && item[children]length > 0) {

        //如果有子集,则把子集作为参数重新执行本方法

        rev(item, id, level + 1);

      }

    }

  };

  rev(obj, id, level);

  return arrRes;

}

let list = [

    {id: 1, children: [

        {id: 11, children: [{id: 12}]}

    ]},

    {id: 2, children: [{id:21, children: [{id: 31}]}]}

]

let b = findIdList(list, 21)

consolelog(b) // [ { level: 0, activeId: 2 }, { level: 1, activeId: 21 } ]

这样:

<ul class="parent1">

    <li><a href="#" id="item1">jquery获取父节点</a></li>

    <li><a href="#">jquery获取父元素</a></li>

</ul>

扩展资料:

注意事项

parent是指取得一个包含着所有匹配元素的唯一父元素的元素集合。

parents则是取得一个包含着所有匹配元素的祖先元素的元素集合(不包含根元素)。可以通过一个可选的表达式进行筛选。

可以看出parent的取值很明确,就是当前元素的父元素;parents则是当前元素的祖先元素。

<div id='div1'>

<div id='div2'><p></p>

</div><div id='div3' class='a'><p></p></div>

<div id='div4'><p></p></div>

</div>

以上就是关于js怎么获取父函数的event全部的内容,包括:js怎么获取父函数的event、JS如何获取对象的父对象(非文档对象)、angularjs中怎么得到scope的父级域等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9625029.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存