2017-02-10 110 views
0

我分配了ID的元素的Id在angularjs一个变量像下面获取值的元素的角度JS

var test = angular.element("#sqldiv"); 

我发送测试变量的函数,想用函数中元素的ID。我无法检索id值。当我试图提醒测试。它只是给[object,Object]作为输出。请让我知道如何检索元素的id值。即我想要的值为"#sqldiv"

任何帮助,这是非常感谢。提前致谢。

+0

'test [0] .id',但请解释您的用例。看起来你正在做的是非角色的方式 – devqon

+2

看起来你正在尝试做一些可以做得更干净的事情 - 直接处理元素几乎总是在Angular中做错事。改为使用数据绑定。 – LionC

回答

1

试试这个

test[0].id 

这会给你一个元素id

+0

虽然这是正确的,但我强烈建议不要在没有告诉OP不要在Angular中传递DOM元素的情况下回答此问题,因为它们似乎是新的。 – LionC

1

Angular的jQlite像jQuery一样工作,但功能有一些限制,以确保良好的性能,以便您可以使用jQuery的方法$.fn.attr来做这样的事情。

例如:

var elm = angular.element(document.getElementById("#sqldiv")); 

console.log(elm.attr('id')); 

注上angular.element它的选择是有限的,所以你不能用这样的ID查询,你必须通过它自我jQlite像元素:angular.element(document.getElementById("#sqldiv"))angular.element(document.querySelector("#sqldiv"))

使用DOM与角注:,因为它是被告知的意见,避免使用DOM数据绑定,angularjs都有自己的方式做到这一点,莫st活动不需要DOM操作,你应该创建一个指令来做这样的事情,你有适当的方式来处理它。

+1

虽然这是正确的,但我强烈建议不要在没有告诉OP不要在Angular中传递DOM元素的情况下回答此问题,因为它们似乎对它不熟悉。 – LionC

+1

@LionC没有禁止传递DOM元素,这取决于你想要做什么我不知道他是在创建一个组件指令还是只是试图显示一个文本变量。但是,你说得对,我应该添加一个关于这个的笔记,我会的。谢谢:{D –

+1

确实,有些情况下需要它。但是其中大部分已经被现有的结构化指令解决了,并且在有人对Angular新手询​​问处理DOM元素时,我会说95%的情况,他们需要被告知不要这样做:-) – LionC