我有一个动态生成的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与声明的变量相同?
答案 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]),连字符(“ - ”), 下划线(“_”),冒号(“:”)和句点(“。”)。