为什么 innerHTML returns 在 angularjs 中未定义
Why does innerHTML returns undefined in angularjs
innerHTML 在单击 <p></p>
标签时返回未定义,但我希望它在 html 内部。猜猜为什么?
因为 Angular 传递 $scope
个对象,而不是 DOM 个元素。由于 $scope
对象没有 innerHtml
,您得到的是 undefined
。
您可以将模型分配给输入或文本区域,然后将此模型传递给您的函数。这是一个 plunker: http://plnkr.co/edit/VjFXacXJMa0PpS364wOb 或者,如果你想坚持从控制器玩 DOM 这违反 Angular 的性质,你可以使用 $event.target
.
除此之外,您可以传递 $event
并获取 $event.target
,这是单击的 dom 元素
$scope.abc = function($event){
alert($event.target.innerHTML);
}
你可以通过angular的$event
<p ng-click="abc($event)">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptas, nemo, numquam, incidunt similique quisquam dolor blanditiis quis veniam at laudantium quibusdam beatae ad ea voluptates impedit molestiae cum modi quam!
</p>
并获得 innerHtml
$scope.abc = function(e) {
alert(e.target.innerHTML);
}
您需要 $event.target
或 $event.currentTarget
。
我希望你应该使用 $event.currentTarget
,因为它会在你点击的地方为你提供更精确的元素。
代码
$scope.abc = function($event){
//more precise element tracking will track sub element too using $event.currentTarget
alert( $event.currentTarget.innerHTML || $event.srcElement.innerHTML);
alert($event.target.innerHTML); //element tracking
}
参考 this answer 了解更多信息。
innerHTML 在单击 <p></p>
标签时返回未定义,但我希望它在 html 内部。猜猜为什么?
因为 Angular 传递 $scope
个对象,而不是 DOM 个元素。由于 $scope
对象没有 innerHtml
,您得到的是 undefined
。
您可以将模型分配给输入或文本区域,然后将此模型传递给您的函数。这是一个 plunker: http://plnkr.co/edit/VjFXacXJMa0PpS364wOb 或者,如果你想坚持从控制器玩 DOM 这违反 Angular 的性质,你可以使用 $event.target
.
除此之外,您可以传递 $event
并获取 $event.target
,这是单击的 dom 元素
$scope.abc = function($event){
alert($event.target.innerHTML);
}
你可以通过angular的$event
<p ng-click="abc($event)">
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Voluptas, nemo, numquam, incidunt similique quisquam dolor blanditiis quis veniam at laudantium quibusdam beatae ad ea voluptates impedit molestiae cum modi quam!
</p>
并获得 innerHtml
$scope.abc = function(e) {
alert(e.target.innerHTML);
}
您需要 $event.target
或 $event.currentTarget
。
我希望你应该使用 $event.currentTarget
,因为它会在你点击的地方为你提供更精确的元素。
代码
$scope.abc = function($event){
//more precise element tracking will track sub element too using $event.currentTarget
alert( $event.currentTarget.innerHTML || $event.srcElement.innerHTML);
alert($event.target.innerHTML); //element tracking
}
参考 this answer 了解更多信息。