Javascript 如何遍历HTML节点以查找匹配项并从节点获取下一个innerHTML

Javascript 如何遍历HTML节点以查找匹配项并从节点获取下一个innerHTML,javascript,jquery,html,Javascript,Jquery,Html,我有一个表单元素来选择一个人。一旦元素发生更改 执行函数getPerson(),并读取所选条目的值 <select id="cust_id" name="f_cust_id" onchange="getPerson(this)"> <option value="51">Brad Pitt</option> <option value="123">Angelina Jolie</option> <option value

我有一个表单元素
来选择一个人。一旦元素发生更改 执行函数
getPerson()
,并读取所选条目的值

<select id="cust_id" name="f_cust_id" onchange="getPerson(this)">
  <option value="51">Brad Pitt</option>
  <option value="123">Angelina Jolie</option>
  <option value="13">Jennifer Aniston</option>
</select>

布拉德皮特
安吉丽娜·朱莉
詹妮弗·安妮斯顿
下一步是:我在同一页中有一个隐藏的文本,我想在这里找到这个值(示例值51)。 我需要通过这个hiddenCustomer节点进行迭代

隐藏HTML文本

<div id="hiddenCustomer" style="display:none;">
  <span>51</span><span>Brad;Pitt;Y1;Group1;bpitt@wwz.com;12345</span>
  <span>123</span><span>Angelina;Jolie;Y2;Group2;ajolie@wwz.com;12346</span>
  <span>13</span><span>Jennifer;Aniston;Y1;Group1;ja@wwz.com;12347</span>
</div>

51Brad;皮特;Y1;第1组;bpitt@wwz.com;12345
安吉丽娜;朱莉;Y2;第2组;ajolie@wwz.com;12346
13詹妮弗;安妮斯顿;Y1;第1组;ja@wwz.com;12347
最后,如果我有一个匹配项51=51,我从下一个元素中提取字符串并将其“拆分”到一个数组中。它将用于填写一些公式字段,如:firstname、lastnamem、floor、group、email

我的问题是:如何通过hiddenCustomer节点进行最佳迭代。找到匹配项并从中获取innerHTML值 下一个元素(例如:Brad;Pitt;Y1;Group1;bpitt@wwz.com;12345)

ps:我不想使用JSON对象。

您可以这样做:

var value = 51;

var $span = $('#hiddenCustomer span:nth-child(odd)').filter(function(){
    return parseInt($(this).text(),10) == value;
}).next('span');

console.log($span.html());
您可以这样做:

var value = 51;

var $span = $('#hiddenCustomer span:nth-child(odd)').filter(function(){
    return parseInt($(this).text(),10) == value;
}).next('span');

console.log($span.html());
最终得到一个字符串数组

您将得到一个字符串数组。

您可以这样做

[演示]
-->

你可以这样做

[演示]
-->


如果您将数据跨度嵌套到另一个容器中,使其成为子元素,事情就会变得更简单。。。此外,在IDs中工作的选择器性能更高…如果您将数据跨度嵌套到另一个容器中,使它们成为子元素,事情会更容易。。。此外,在IDs中工作的选择器性能更高。。。
function getPerson(element)
{
    var val = element.value;
    var $span = $('#hiddenCustomer span').filter(function(){
      return $(this).text() == val;
   }).next('span');
}