<p></p>
标签时,innerHTML返回undefined,但我期待它的内部html。有什么猜?为什么?
答案 0 :(得分:1)
因为Angular传递$scope
个对象,而不是DOM元素。由于$scope
对象没有innerHtml
,因此您获得undefined
。
您可以将模型指定给输入或文本区域,然后将此模型传递给您的函数。这是一个plunker:http://plnkr.co/edit/VjFXacXJMa0PpS364wOb或者,如果你想坚持使用控制器中的DOM来反对Angular的性质,你可以使用$event.target
。
答案 1 :(得分:1)
您可以传递角度$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);
}
答案 2 :(得分:1)
您需要$event.target
或$event.currentTarget
。
我希望您使用$event.currentTarget
,因为它会为您提供更精确的点击元素。
<强> CODE 强>
$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。
答案 3 :(得分:0)
而不是这个,您可以传递$event
并获取$event.target
这是点击的dom元素
$scope.abc = function($event){
alert($event.target.innerHTML);
}