在 javascript 中是否有一种简单的方法来定位父对象的父对象?
我使用 this.parentNode 作为函数的元素来选择父节点,我尝试了 this.parent.parentNode 和 this。 parentNode.parentNode,但两者都只返回直接父节点。
我试图影响围绕“this”的 div 的 div。我确实设法使用一个简单的循环语句使其工作,该循环语句将 parentNode 选择重复两次,但我认为有更好的方法。
最佳答案
this.parentNode.parentNode 是正确的,您一定(抱歉!)在您尝试的测试中出错了。
HTML:
<div id="outermost">Outermost
<div id="inner1">Inner 1
<div id="inner2">Inner 2</div>
</div>
</div>
JavaScript:
var inner2 = document.getElementById("inner2");
display("inner2.id = " + inner2.id);
display("inner2.parentNode.id = " + inner2.parentNode.id);
display("inner2.parentNode.parentNode.id = " + inner2.parentNode.parentNode.id);
display("Try clicking the blue 'inner2' above");
inner2.onclick = function(e) {
display("Click: this.id = " + this.id);
if (this.parentNode) {
display("Click: this.parentNode.id = " + this.parentNode.id);
if (this.parentNode.parentNode) {
display("Click: this.parentNode.parentNode.id = " + this.parentNode.parentNode.id);
}
}
};
function display(msg) {
var p = document.createElement('p');
p.innerHTML = String(msg);
document.body.appendChild(p);
}
输出(假设按指示单击一次):
inner2.id = inner2 inner2.parentNode.id = inner1 inner2.parentNode.parentNode.id = outermost Try clicking the blue 'inner2' above Click: e.target.id = inner2 Click: e.target.parentNode.id = inner1 Click: e.target.parentNode.parentNode.id = outermost
关于 parent 的javascript parent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15367111/
我在使用Rails3.0.2时遇到了这个奇怪的错误。ActionView::Template::Error(undefinedmethod`parent'fornil:NilClass):app/controllers/channels_controller.rb:19:in`index'这是Controller,19行是respond_with(@channels)block。我从哪里开始搜索错误?classChannelsController这是完整的错误:ActionView::Template::Error(undefinedmethod`parent'fornil:NilCl
我刚刚进入FactoryGirl,我遇到了一个困难,我相信应该容易得多。我只是无法将文档扭曲成一个工作示例。假设我有以下模型:classLeague我想做的是:team=Factory.build(:team_with_players)并让它为我培养了一批玩家。我试过这个:Factory.define:team_with_players,:class=>:teamdo|t|t.sequence{|n|"team-#{n}"}t.players{|p|25.times{Factory.build(:player,:team=>t)}}end但这在:team=>t部分失败了,因为t并不是真
我想根据包含此Mixin的类名在Mixin中动态生成一个类方法。这是我当前的代码:moduleMyModuleextendActiveSupport::Concern#defsome_methods#...#endmoduleClassMethods#HereiswhereI'mstuck...define_method"#{self.name.downcase}_status"do#dosomething...endendendclassMyClass但这给了我以下方法名称:MyClass.mymodule::classmethods_status在方法定义中获取基类名称是可行的(s
假设我有从A派生的B类是否可以像这样调用A的重写方法?classAdefmethod1enddefmethod2endendclassB#与HowdoIcallanoverriddenparentclassmethodfromachildclass?不完全相同,但我们似乎想做同样的事情。 最佳答案 我在这里假设B应该继承自A,而您只是在示例代码中输入了一个错字。如果不是这样,就没有办法做你想做的事情。否则,您可以通过将A的method2实例方法绑定(bind)到您当前的B对象并调用它来使用反射来做您想做的事这个:classAdefm
我正在使用react-navigation。我正在将props从react-nativecomponent传递到react-navigation的modal,它在点击。exportdefaultclassSomeCompextendsComponent{...render(){const{navigate}=this.props;return()}}在modal中,我访问了关闭modal的goBack()函数,以及props通过SomeComp传递exportdefaultclassModalextendsComponent{...render(){const{data,...}=th
varproblemtest=function(){varparameters;returnfunction(parameters){parameters=parameters;}}varmysolutiontest=function(){varparameters;returnfunction(parametersIn){parameters=parametersIn;}}这更像是一个JavaScript约定问题。通常我在上面有类似的代码。函数接受参数并将其分配给父范围。但是,我不能像在problemtest中那样使用它,因为作为参数的parameters隐藏了problemtest
假设我有Player对象:varplayer=function(name){this.handlers={};}player.prototype.on=function(event,callback){if(!this.handlers[event]){this.handlers[event]=[];}this.handlers[event].push(callback);}效果很好,我可以创建播放器,每个播放器都有自己的一组处理程序。现在假设我需要从player继承:vartestPlayer=function(name){this.name=name;};testPlayer.pr
我有一个页面。没有iframe:而且我需要检查页面是否在Iframe中,所以我这样做了:if(!window.parent){...不在iframe中...}但似乎window.parent永远不会undefined并且总是引用窗口(self===parent)。这是为什么呢?窗口没有(!)父窗口。那么为什么要定义它呢?注意我知道window.window.w....是相同的,这是有原因的。但我在谈论parent(!)我知道我可以检查这个条件:if(window.self===window.parent)...但我的问题仍然存在。 最佳答案
语境我正在尝试将输入值字段(conditionTitle)从ReactStateless子组件(AddConditionSelect)传递到父组件(AddConditionDashboard)>)这将保持我的状态。问题我遵循了Reactdocumentation中显示的模型,但他们使用的是refs,这仅在组件是有状态的情况下才有效。我不想在子组件中设置任何状态,但仍然能够访问父组件中的输入。在目前的形式中,我收到一个警告,无状态函数组件不能被赋予refs,导致props为null和未定义。父组件:importAddConditionSelectfrom'../containers/Ad
假设我有一个Parent组件,它呈现一组Child组件。当悬停其中一个Child组件时,我希望突出显示(bg颜色)属于同一组的Child组件。看下面的代码,每个Child都有一个组属性:https://jsfiddle.net/69z2wepo/53442/constParent=React.createClass({render(){constrows=[];letgroup=1;for(leti=1;i);if(i%3===0){group++;}}return({rows});}});constChild=React.createClass({render(){return(id