按名称选择器,在我的类名 jQuery 的框中

Posted

技术标签:

【中文标题】按名称选择器,在我的类名 jQuery 的框中【英文标题】:Selector by name, in box with my class name jQuery 【发布时间】:2014-06-22 15:31:21 【问题描述】:

如何指定仅在特定类中按输入名称从输入中获取所有值?

例如,如果我尝试从名为“album_id”的所有输入中获取值,我已经设置了

$("input[name='album_id']").val()

它可以工作,但如果我想显示所有输入,它只在带有“照片”类的框中,我试着写

$(".photo").find("input[name='album_id']").val()

$(".photo > input[name='album_id']").val()

而且这种结构不起作用。但顺便说一句,当我从类为 'foo_wrapper' 的块中获取所有名为 'foo' 的类并设置

$('.addPhoto_wrapper').find('.alb_btn')

而且它工作正常。

那么为什么不做同样的建筑呢?

小提琴示例: http://jsfiddle.net/V2e3r/

【问题讨论】:

你能展示你的 html 并创建一个小提琴吗? 我试过同样的情况,它在我身边工作......你能分享一下 JSfiddle 吗 是的,没问题,请稍等。 :) 你能做JSFiddle吗..如果不能,你可以发布你正在使用的html结构 查看 JSfiddle ...我没有找到任何 class="addPhoto" 的 div ... 【参考方案1】:

问题在于您查询所有输入及其选择器的方式。假设代码如下:

<div class="photo">
   <input type="text" name='album_id' value="1"/>
   <input type="text" name='album_id' value="2"/>
   <input type="text" name='album_id' value="3"/>
</div>
<input type="text" name='album_id' value="4"/>

那么选择这些输入的方法是这样的:

var inputCollection = $('.photo input[name="album_id"]');
$.each(inputCollection, function(key, value)
    console.log(value);
);

演示:http://jsfiddle.net/a7LqP/ 我希望这对你来说是一个开始。

编辑:我忘了提 - 在遍历集合中的所有输入时,引用 $(this) 而不是 value 将返回当前输入的 jQuery 对象。

【讨论】:

谢谢,但不是,我没有,也不需要很多名称为“album_id”的输入,我知道我需要进入循环的数组。我只有一个名称为“album_id”的输入,并且在带有类.alb_btn 的单击按钮上,我需要从单击按钮的数据属性中为名称为album_id 的此输入设置新值。以及选择器中的问题,我想严格表明更改值只需要输入名称album_id 仅在类“.photo”中。 和选择器中的问题,只是我没有正确设置它。例如,使用该构造var test_val = $("input[name='album_id']").val(); 一切正常,使用该构造不起作用var test_val = $(".addPhoto").find("input[name='album_id']").val(); 但是如果我只是离开第一个示例,没有严格说明我需要从哪个类按名称获取值,将来我会遇到名称为album_id 的乘法输入的问题【参考方案2】:

如下使用:

  var inputCollection = $('.photo').find($('input[name="album_id"]'));
  $.each(inputCollection, function(key, value)
    console.log(value);
  );

DEMO

【讨论】:

以上是关于按名称选择器,在我的类名 jQuery 的框中的主要内容,如果未能解决你的问题,请参考以下文章

jQuery多维数组名称选择器

jQuery多维数组名称选择器

如何使用变量处理 Jquery 选择器

JQuery 最后一个选择器没有按预期工作

角度指令中的css选择器

jQuery:选择器(带空格的类名)