jQuery相当于“getElementsByName”

时间:2012-03-14 23:32:07

标签: javascript jquery

getElementsByName调用的正确jquery语法是什么?

这是我的javascript代码:

var test = document.getElementsByName(tableName)[0];

使用它返回一个不同的值:

var test = $("[name=tableName]");

提前致谢

5 个答案:

答案 0 :(得分:24)

attribute selector周围使用引号:

$('[name="somenamehere"]');

如果需要在选择器中使用变量,则需要使用字符串连接来获取变量的值:

$('[name="' + tableName + '"]');

通常应该避免使用[name]属性来支持[id]属性,因为选择会更简单:

$('#someidhere');
-or-
$('#' + tableID);

答案 1 :(得分:5)

从第一个语句中删除索引

这些是平等的。

var test = document.getElementsByName(tableName);
var test = $("[name=tableName]");

答案 2 :(得分:2)

"[name=tableName]"在两种方面都是错误的语法。首先,你应该把你的名字放在引号中,所以它应该是"[name='tableName']",其次,在第一种情况下,你使用的是变量而在第二种情况下是一个字符串,所以实际上它应该是{{1 }}

如果您在"[name='" + tableName + "']"电话上有索引这一事实也很好,如果您选择项目getelementsbyname(),那么它只会返回一个项目。

答案 3 :(得分:1)

有趣的是知道jquery比这里的本机方法慢很多。 请参阅jsPrefs测试:http://jsperf.com/getelementsbyname-vs-jquery-selektor/4

答案 4 :(得分:0)

如果你想获得一个元素值,请使用以下代码:

var test1 = $("[name='tableName']").val();
alert(test1);

这些等于获取特定索引[]的值:

对于相同的索引[0]

var test2 = $("[name='arryname[]']")[0];
alert(test2.value);

var test3 = $("[name='arryname[]']").get([0]);
alert(test3.value);