首页 > 解决方案 > 使用类和数据属性在 .each() 循环中创建选择器

问题描述

我试图在页面上查找三个字段(输入、选择和文本区域)的值。我正在使用 jQuery 隐藏和显示每个部分具有相同字段的多个选项卡。

免责声明:我在下面松散地使用这个词对象。我不是 100% 确定我理解了整个概念,但我想我明白了。

我在控制台中尝试了以下操作,它返回了一个包含我想要的特定字段的对象(我知道正在返回正确的对象,因为我有另一个“数据行”属性,该属性具有与该部分匹配的 ID 号我正在展示)。

$(".checkFields:visible").each(function() {
  var test = $(this);
  console.log(test);
});

所以,我认为下面会让我更接近这个值,但它返回完全相同的对象:

$(".checkFields:visible").each(function() {
  var test = $(this).attr("data-field").val();
  console.log(test);
});

我还尝试了以下方法,试图在没有运气的情况下将它们一一拔出。

var test = $('.checkFields:visible[data-field="operation"]');
console.log(test);

我不是 100% 确定初始对象中应该包含什么,但这对我来说似乎是正确的(运行前两个查询时控制台中的鞋子。

Object 
{ 0: input.checkFields.form-control, 1: select.checkFields.form-control, 2: textarea.checkFields.form-control, length: 3, prevObject: {…}, context: HTMLDocument http://myWebsite/myWebpage.php?id=29001, selector: ".checkFields:visible"}

如何使用我指定的数据字段值返回具有我的类、可见的字段的值?

标签: jquery

解决方案


根据评论,以下工作:

var value = $('.checkFields:visible[data-field="operation"]').val();
console.log(value);

返回我的值 = 'asdf'

$('.checkFields:visible[data-field]').each(function() {
    field = $(this).data("field");
    value = $(this).val();
    console.log(field+": "+test);
});

返回我所有的值。操作:adsfsda 工作中心:adsfsda 操作说明:adsfsda

我觉得我肯定试过这些,但我想不是。我想是漫长的一天。


推荐阅读