我有一个表单元素<select>
来选择一个人。一旦元素发生变化
执行函数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>
最后,如果我有匹配51 = 51,我从下一个元素中取出字符串并将其“拆分”为一个数组。它将用于填写一些公式字段,如:firstname,lastnamem,floor,group,email ...
我的问题是:如何通过hiddenCustomer节点进行最佳迭代。找到匹配并从中获取innerHTML值 下一个元素(例如:Brad; Pitt; Y1; Group1; bpitt@wwz.com; 12345)
ps:我不想使用JSON对象。
答案 0 :(得分:2)
你可以这样做
[ DEMO ] -->
http://fiddle.jshell.net/ykF6P/
function getPerson(element)
{
var val = element.value;
var $span = $('#hiddenCustomer span').filter(function(){
return $(this).text() == val;
}).next('span');
}
答案 1 :(得分:1)
你可以这样做:
var value = 51;
var $span = $('#hiddenCustomer span:nth-child(odd)').filter(function(){
return parseInt($(this).text(),10) == value;
}).next('span');
console.log($span.html());
答案 2 :(得分:1)
function getPerson(element){
var elementsArray = [];
$("#hiddenElement").each(function(){
$(this).find("span").each(function(){
if($(this).text() == $(element).val()){
elementsArray = $(this).find("span").next().text().split(';');
}
});
});
}
你最终会得到一个字符串数组。