查找数组中的哪个 div 包含 ValueA,并将 ValueB 从它返回到新的变量



单击按钮时,我正在抓取 Select 控件的当前值,如下所示......

$('#myBtn').on('click', function (clickEvent) {
var nameSelected = document.getElementById('mySelectControl').getElementsByTagName('span')[0].innerText;
//...
}

这很好。该值是正确的。假设nameSelected的值是"Bob"。

"Bob"也存在于我页面的其他地方,在表格中。有多个表,但只有 1 个表包含值"Bob"。

每个表都分配了square类。

以下是我如何找到表中的名称(鲍勃或其他名称)。我只是在Chrome的控制台中执行此操作。

创建每个表的数组:

var tables = $('.square').each(function () {
$(this).html();
})

获取索引 0 处的表并从表中获取名称:

var name = $(tables[0]).find('tr:eq(0)').find('td').text();

这一切都有效。上述陈述的结果将是"鲍勃"、"乔恩"或"比尔"等。

我需要的是不同td的值,来自包含nameSelected的表(来自上面的 Select 控件)。例如伪代码:

var phone = $(tables).find('tr:eq(6)').find('td').text();
WHERE
name == nameSelected

我希望这是有道理的。基本上试图从td(0).textnameSelected的任何div中获取td(6).text的值。

我只是不确定如何写最后一句话,我已经尝试了一些事情。我想在单击按钮时执行所有这些操作。我希望伪代码有所帮助...

你不需要创建所谓的"每个表的数组"。您可以将代码放在each()函数中,然后只需检查名称以查看您是否找到了您要查找的人(例如 Bob),然后中断,这样您就不会继续不必要地在其他表中搜索:

var search = 'Bob';
var phone;
$('.square').each(function() {
var name = $(this).find('tr:eq(0)').find('td').text();
if (name === search) {
phone = $(this).find('tr:eq(6)').find('td').text();
return false; //Break out of the loop.
}
});

最新更新