2

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

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

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

4

4 回答 4

5

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

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

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

最后但同样重要的是,请记住ID 属性不能以数字开头,除非您使用的是 HTML 5。

于 2012-04-09T08:27:00.390 回答
3

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

document.getElementById("myvar").innerHTML

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

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

document.getElementById(myvar).innerHTML

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

$('#' + myvar).html();
于 2012-04-09T08:24:29.730 回答
3

用这个 -

$("#"+myVar).html();
于 2012-04-09T08:22:24.680 回答
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])、连字符 ("-")、下划线 ("_") , 冒号 (":") 和句点 (".")。

于 2012-04-09T08:24:20.113 回答