2014-02-27 157 views
0

所以基本上,我想知道jQuery中是否有类似于vanilla javascript的getElementById的函数。使用$('#'+ id)的问题在于字符串连接似乎不是很好的编码风格。在jQuery中通过ID获取元素

我绝对可以添加我自己的帮助器方法,但我只是想知道jQuery中是否已经有东西。

+0

没有......另一种选择是'$(的document.getElementById(ID))'... 。但是严重的字符串连接有什么问题? –

+4

*“使用'$('#'+ id)'的问题是字符串连接似乎不是很好的编码风格。”*字符串连接是构建动态选择器的唯一方法,并且有效使用这种情况。我不会太担心。我假设你没有像'var id = this.id; $( '#' + id)的......'。 –

+0

@FelixKling我想我是过分敏感的。基本上,我正在编写一个UI工具,并且该id应该从另一个元素的属性中提取以建立某种关系。我正在考虑像SQL注入这样的东西,并认为编写代码的更多过程方式比组装字符串要好。但是在客户端脚本中,除非有人想要一个混乱的页面,否则这不应该成为一个问题。 – user690421

回答

1

这其实工作原理:

var id="myTextBox"; 
alert ($(eval(id)).val()); 

HTML:

<input type='textbox' id="myTextBox" value="hola mundo"></input> 

而且你不使用字符串连接我不会使用它或任何circunstance下鼓励,字符串concat是我想这种情况下去的路。

更多的eval(): https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval

这里更多相关的信息: Why is using the JavaScript eval function a bad idea?

2

它和你写的一样简单。如果你有一个id为'divInfo'的元素,那么你可以使用$('#divInfo')来选择元素。它只是简单的CSS选择器。