- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
HTML 如下:
<div class="sltbsummry collection">
<div class="sltabsecondrow">
<div> <small>Schedule</small>
</div>
<div> <small>Amount</small>
</div>
</div>
<div class="planContainer">
<div class="sltabsecondrow">
<div>
<span>
<input type="text" value="11-02-2019" class="schDate inputFld" readonly="">
</span>
<span class="pull-right">
<i class="fa fa-calendar"></i>
</span>
</div>
<div>
<span>
<input type="text" value="10000000" class="schAmt inputFld">
</span>
<span>
<a title="Remove Row" class="remRow" href="javascript:void(0);" style="display: inline;">
<i class="fas fa-times-circle"></i></a>
</span>
</div>
</div>
<div class="sltabsecondrow">
<div>
<span>
<input type="text" class="schDate" readonly="">
</span>
<span class="pull-right">
<i class="fa fa-calendar"></i>
</span>
</div>
<div>
<span>
<input type="text" class="schAmt">
</span>
<span>
<a title="Remove Row" class="remRowAdd" href="javascript:void(0);">
<i class="fas fa-times-circle"></i></a>
</span>
</div>
</div>
<div class="sltabsecondrow">
<div>
<span>
<input type="text" class="schDate" readonly="">
</span>
<span class="pull-right">
<i class="fa fa-calendar"></i>
</span>
</div>
<div>
<span>
<input type="text" class="schAmt">
</span>
<span>
<a title="Remove Row" class="remRowAdd" href="javascript:void(0);">
<i class="fas fa-times-circle"></i></a>
</span>
</div>
</div>
<div class="sltabsecondrow">
<div>
<span>
<input type="text" class="schDate" readonly="">
</span>
<span class="pull-right">
<i class="fa fa-calendar"></i>
</span>
</div>
<div>
<span>
<input type="text" class="schAmt">
</span>
<span>
<a title="Remove Row" class="remRowAdd" href="javascript:void(0);">
<i class="fas fa-times-circle"></i></a>
</span>
</div>
</div>
</div>
</div>
上图显示了一个字段集,其中“计划”和“金额”相互关联。必须使用每行值形成一个数据集,例如:
[
{date:11/02/2019,amt:1000000},
{date:13-02-2019,amt:1111},
{date:21-02-2019,amt:222}... so on
]
尝试了以下迭代,但我无法弄清楚如何获取 schAmt
的相应值(.schDate 是日期字段的选择器,.schAmt 是金额)
jQuery('.schDate,.schAmt').each(function(){
//when loop is over .schDate how to get corresponding .schAmt value?
});
这可以通过分配相应的索引来完成,但我想知道像这样的循环是否会避免过度杀伤并始终产生正确设置的相应值?
最佳答案
您需要做的是迭代输入元素的公共(public)父元素,例如.sltabsecondrow
,使用.map()
您需要检查该元素是否确实包含您想要的输入元素。如果它们确实存在,您只需返回该对象,该对象将按照您的预期创建一个对象数组。
要在每次迭代中访问正确的输入元素,请提供 this
作为选择器中的第二个参数,它定义必须在其中找到该元素的上下文,例如$('.schDate', this)
。这相当于使用 $(this).find('.schDate')
,只是稍微简洁一点。
最后,你想链接 .get()
最后,以便将 jQuery 对象转换回 native JS 数组。
var data = jQuery('.sltabsecondrow').map(function() {
var $date = $('.schDate', this);
var $amt = $('.schAmt', this);
// Check if both input elements exist
// If not, return nothing
if (!$date.length || !$amt.length)
return;
return {
date: $date.val(),
amt: $amt.val()
};
}).get();
使用 .map()
相对于 .each()
的优点是,您不需要在循环外部定义另一个变量来存储数据。
请参阅下面的概念验证:
jQuery(document).ready(function() {
var data = jQuery('.sltabsecondrow').map(function() {
var $date = $('.schDate', this);
var $amt = $('.schAmt', this);
// Check if both input elements exist
// If not, return nothing
if (!$date.length || !$amt.length)
return;
return {
date: $date.val(),
amt: $amt.val()
};
}).get();
console.log(data);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="sltbsummry collection">
<div class="sltabsecondrow">
<div> <small>Schedule</small>
</div>
<div> <small>Amount</small>
</div>
</div>
<div class="planContainer">
<div class="sltabsecondrow">
<div>
<span>
<input type="text" value="11-02-2019" class="schDate inputFld" readonly="">
</span>
<span class="pull-right">
<i class="fa fa-calendar"></i>
</span>
</div>
<div>
<span>
<input type="text" value="10000000" class="schAmt inputFld">
</span>
<span>
<a title="Remove Row" class="remRow" href="javascript:void(0);" style="display: inline;">
<i class="fas fa-times-circle"></i></a>
</span>
</div>
</div>
<div class="sltabsecondrow">
<div>
<span>
<input type="text" class="schDate" readonly="">
</span>
<span class="pull-right">
<i class="fa fa-calendar"></i>
</span>
</div>
<div>
<span>
<input type="text" class="schAmt">
</span>
<span>
<a title="Remove Row" class="remRowAdd" href="javascript:void(0);">
<i class="fas fa-times-circle"></i></a>
</span>
</div>
</div>
<div class="sltabsecondrow">
<div>
<span>
<input type="text" class="schDate" readonly="">
</span>
<span class="pull-right">
<i class="fa fa-calendar"></i>
</span>
</div>
<div>
<span>
<input type="text" class="schAmt">
</span>
<span>
<a title="Remove Row" class="remRowAdd" href="javascript:void(0);">
<i class="fas fa-times-circle"></i></a>
</span>
</div>
</div>
<div class="sltabsecondrow">
<div>
<span>
<input type="text" class="schDate" readonly="">
</span>
<span class="pull-right">
<i class="fa fa-calendar"></i>
</span>
</div>
<div>
<span>
<input type="text" class="schAmt">
</span>
<span>
<a title="Remove Row" class="remRowAdd" href="javascript:void(0);">
<i class="fas fa-times-circle"></i></a>
</span>
</div>
</div>
</div>
</div>
您也可以在 vanilla JS 中执行与上面相同的逻辑;)
var rows = document.querySelectorAll('.sltabsecondrow');
var data = Array.prototype.map.call(rows, function(row) {
var date = row.querySelector('.schDate');
var amt = row.querySelector('.schAmt');
if (!date || !amt)
return;
return {
date: date.value,
amt: amt.value
};
}).filter(function(datum) { return !!datum; });
const rows = document.querySelectorAll('.sltabsecondrow');
const data = Array.from(rows).map(row => {
const date = row.querySelector('.schDate');
const amt = row.querySelector('.schAmt');
if (!date || !amt)
return;
return {
date: date.value,
amt: amt.value
};
}).filter(datum=> !!datum);
关于javascript - 分别获取第二个选择器 jQuery 的对应值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54824362/
我想检查我的应用程序或系统中是否存在库。在 Java 中,我通常执行 System.loadlibrary,但是有谁知道 C 中类似的相应调用吗? 最佳答案 是dlopen打开一个库,dlsym 从加
我在 typescript 中输入以下内容 export type Excludable = T & { isExcluded?: boolean } 其中过滤值: export type Filte
我最近在我的应用程序中添加了一种方法,可以自动格式化 TextView ,从“50000”到“50,000”,效果绝对完美。现在我遇到的问题是,在我的应用程序中,有多个按钮功能可以从该 TextVie
SELECT * FROM conversations WHERE chatMembers LIKE '%1%'AND chatMembers LIKE '%10%' 对话表 id | chatMem
我正在编写一个需要将 Java Date() 值保存到 MySQL 数据库的 RESTful Web 服务,但是,我不确定 MySQL 中可以保存 Java Date() 的数据类型是什么,或者我是否
同样,在任何 Red Hat 或 JBoss 站点上都没有关于此的信息,所以我在这里问... 我不确定是 13 还是 14。 最佳答案 Mapping the Community versions w
同样,在任何 Red Hat 或 JBoss 站点上都没有关于此的信息,所以我在这里问... 我不确定是 13 还是 14。 最佳答案 Mapping the Community versions w
我曾尝试使用 swift 开发一款利用 iPhone 的 3D 触摸硬件的游戏。然而,当我将我的应用程序提交到 App Store 时,它被拒绝了,因为该游戏无法在 iPad 上玩。 我的问题是,
Qt 的有序关联容器对应项 std::map是QMap , std::set是QSet , 对于无序关联容器 std::unordered_map是QHash . 我应该用什么来代替std::unor
JavaScript 方法 String.fromCharCode() 在以下意义上与 Python 的 unichar() 等效: print unichr(213) # prints Õ on t
正如谷歌在 "Discontinuing support for JSON-RPC and Global HTTP Batch Endpoints" 中提到的那样,Google API 客户端库已重新
我正在使用 MapLayer 和 MapOverlay 在 map 中创建自己的路径/折线,GPS 捕获的所有点都存储在一个结构中,以便我可以访问它们。随时。 现在,我希望路径在用户操作 map (缩
我们使用 Adobe Flash Builder 创建由 Flex 提供支持的交互式 Web 应用程序。现在我们正在寻找替代方案,让我们在 UI 设计和迎合 HTML5 的编码方面拥有同样的开发便
我想知道Android/Java 中类似C#/C++ 中的GetTickCount 方法的相应方法吗? 最佳答案 Android 为 SystemClock.uptimeMillis() .请注意,u
我用 Vue + Phaser 开始了新项目,但是当我尝试加载 Assets 时,this.game.load.image 中的“load”和“add”返回“undefined”。我尝试从 JS 文件
我是一名优秀的程序员,十分优秀!