【问题标题】:get id value by index using name jquery使用名称 jquery 通过索引获取 id 值
【发布时间】:2012-06-09 20:30:49
【问题描述】:

html

<input id="1" name="myText" type="text" value="20"/>
<input id="2" name="myText" type="text" value="30"/>
<input id="3" name="myText" type="text" value="40"/>

如何通过index 使用名称获取 id 值?

下面的代码sn-p不起作用

var getVal = $('[name="myText"]').index(1);

【问题讨论】:

  • 您有一个拼写错误 vat 而不是 var。你最好将 tagName 添加到选择器中。

标签: javascript jquery html


【解决方案1】:

jQuery 像数组一样保存集合中的 DOM 元素,因此您可以使用索引运算符 ([]) 来获取元素,或者使用 :eq(n) `.eq(n )`

$('input[name="myText"]:eq(1)').attr('id')

你应该提到你认为index(1)第一个或第二个:

$('input[name="myText"]:eq(0)').attr('id') // First
$('input[name="myText"]:eq(1)').attr('id') // Second

或者:

$('input[name="myText"]')[0].id // First

【讨论】:

  • index(1) 显然是秒
  • @ShahidGhafoor。不是很明显,css 选择器使用从 1 开始的索引... "请注意,由于 JavaScript 数组使用从 0 开始的索引,这些选择器反映了这一事实。这就是为什么 $('.myclass:eq(1) ') 选择文档中类 myclass 的第二个元素,而不是第一个元素。相比之下,:nth-child(n) 使用从 1 开始的索引以符合 CSS 规范。"
  • 亲爱的,但这是 javascript(jquery) 代码。表示基于 0 的索引;-)..kidding @gdoron
【解决方案2】:

如果要第一个值,可以过滤,使用attr方法获取id属性的值。

var getVal = $('[name="myText"]:first').attr('id'); // first id

如果您想要其他元素,可以使用eq 并选择集合中从零开始的元素。

var getVal = $('[name="myText"]:eq(1)').attr('id'); // second id

【讨论】:

  • 他想要第二个元素,而不是第一个。
  • @dunsmoreb。你怎么知道?
  • @dunsmoreb 可能是这样,但由于他也错误地使用了index,因此认为他也在使用基于 1 的索引并不过分。我已经澄清了以防万一。
【解决方案3】:

我的回答是指通过索引访问 jQuery 结果对象中的元素。您可以使用其他答案中指出的 :eq 等选择器。

但是,您可以使用 .get(1) 代替 index

var id = $('[name="myText"]').get(1).id;

相当于

var id = $('[name="myText"]:eq(1)').attr('id');

例如:http://jsfiddle.net/HackedByChinese/UmKw6/1/

第二种方法是首选路线,因为这意味着您永远不会离开 jQuery 结果对象,因此可以在一个语句中链接其他 jQuery 调用。

var id = $('[name="myText"]:eq(1)').css('color', 'red').attr('id'); // example of chaining jQuery methods. sets the text color to red and then returns the id.

【讨论】:

  • get 返回一个 DOM 元素,而不是 jQuery 对象...你会得到错误:TypeError: Object a has no method 'attr'
  • 这个答案不正确。 .get() 函数返回实际的 DOM 元素,因此您不能在其上使用 jQuery .attr() 函数。你只会得到一个语法错误。
  • 对我来说很好。请参阅我附上的小提琴。
猜你喜欢
  • 1970-01-01
  • 2017-12-04
  • 1970-01-01
  • 1970-01-01
  • 2013-11-04
  • 1970-01-01
  • 2017-10-09
  • 1970-01-01
  • 2011-04-10
相关资源
最近更新 更多