在这样的代码中:
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的元素。
有什么想法吗?
答案 0 :(得分:1)
如果我理解正确,你要找的是:
$(this).siblings("td[class='ms-formbody']").each(..
答案 1 :(得分:0)
尝试
$(this + " td[class='ms-formbody']").each(...
或
$(this).find("td[class='ms-formbody']").each(...
是否有理由为类使用equals选择器属性?你应该写:td.ms-formbody