innerHTML在单击<p></p>
标记时返回undefined,但我希望它在html内部。你猜为什么?
http://plnkr.co/edit/NOLTO95H5GDuG35X9NOA?p=preview
您可以通过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);
}
Plunker
因为Angular传递的是$scope
对象,而不是DOM元素。由于$scope
对象没有innerHtml
,因此您得到的是undefined
。
您可以将模型分配给输入或文本区域,然后将此模型传递给您的函数。下面是一个plunker:http://plnkr.co/edit/VjFXacXJMa0PpS364wOb或者,如果您想坚持从控制器中使用DOM,这与Angular的性质相反,您可以使用$event.target
。
您需要$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
}
工作Plunkr
请参阅此答案以了解更多信息。
您可以传递$event
并获得$event.target
,这是单击的dom元素
$scope.abc = function($event){
alert($event.target.innerHTML);
}