在代码中像这样的兄弟姐妹值:试图选择在jQuery的
for(var i=0; i<arSelectedFields.length; i++) {
$("td[class='ms-formlabel']").each(function() {
var txtCol = $.trim($(this).text()); // field name
var fvalue = ""; //field value
if(txtCol == arSelectedFields[i]) {
$("td[class='ms-formlabel'] + td[class='ms-formbody']").each(function() {; // ignoring any field formatting; use html(), if needed
fvalue = $(this).text();
if(fvalue != "") PrintingHTML += "\n<tr><td class='formlabel'>" + txtCol + "</td><td class='xdata'>" + fvalue + "</td></tr>";
else PrintingHTML += "\n<tr><td class='formlabel'>" + txtCol + "</td><td class='xdata'> </td></tr>";
fvalue = "";
}); //each()
return false;
} //else return false;
});
}
我必须声明:
$("td[class='ms-formlabel'] + td[class='ms-formbody']").each(....
我真正想要的是一样的东西
$(this)...td[class='ms-formbody']").each(...
但无法让它工作。换句话说,我只需要td[class='ms-formbody']
存在于当前选中的行中(基于td[class='ms-formlabel']
的值)。我能得到的最接近的是我展示的方式,它从顶部开始收集formbody元素,而不仅仅是适用于当前选定的formlabel的元素。
任何想法?
你真的想选择兄弟姐妹吗?你写了“[...]存在于当前选择的行中[...]”。听起来更像是你在寻找后代。 – griffla 2013-03-24 17:34:30
如果您也可以发布html。 – Jai 2013-03-24 17:36:07
你知道你在循环内有一个循环,并且第一个'each()'函数的运行次数与'selectedFields'中的数组值相同,第二个'each()函数将会运行'selectedFields.length' *第一个'each()',并带有一个非常相似的选择器。似乎有点奇怪? – adeneo 2013-03-24 17:44:01