jquery / javascript在动态创建的元素id中查找值

时间:2012-04-09 08:19:48

标签: javascript jquery

我有一个动态生成的html表,其列的动态分配id。 例如:

   <td id="1">1</td>
    <td id="2">2</td>
     ....
     ....
   <td id="n">n</td>

以获取我正在使用的特定列的获取值         document.getElementById("#myvar").innerHTML$("td#myvar").html其中myvar是变量,包含搜索元素,如2或3等。但我没有得到任何结果。如果我直接使用document.getElementById("#2").innerHTML的数字,它就可以了。请告知如何获取值,其中元素的id与声明的变量相同?

4 个答案:

答案 0 :(得分:5)

首先,getElementById() DOM方法需要一个ID,而不是jQuery选择器。

其次,JavaScript和jQuery都没有在字符串中提供变量插值,正如您所假设的那样。你必须建立自己的字符串:

var myvar = 2;
$("td#" + myvar).html()

最后但同样重要的是,请记住the ID attribute除非您使用的是HTML 5,否则无法以数字开头。

答案 1 :(得分:3)

使用此 -

$("#"+myVar).html();

答案 2 :(得分:3)

你的代码错了。使用document.getElementById时,不包含#符号。使用jQuery id选择器时,你使用#符号,但你需要调用.html()作为函数。

document.getElementById("myvar").innerHTML

$('#myvar').html(); 

如果myvar是变量,请省略引号,例如myvar = "2";,那么您的选择器将是:

document.getElementById(myvar).innerHTML

对于jQuery,使用字符串连接:

$('#' + myvar).html();

答案 3 :(得分:1)

document.getElementById接受一个字符串参数,该参数是您要选择的元素的id,因此您不需要包含#,即

document.getElementById(myvar).innerHTML

应该工作

与您的问题没有直接关系,但ID属性以数字

开头无效

http://www.w3.org/TR/html401/types.html#type-name

  

ID和NAME令牌必须以字母([A-Za-z])开头,可能是   后跟任意数量的字母,数字([0-9]),连字符(“ - ”),   下划线(“_”),冒号(“:”)和句点(“。”)。