このようなコードでは:
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']
。私が得ることができる最も近い方法は、現在選択されているフォームラベルに適用されるものだけでなく、フォームボディ要素のコレクションを上から開始する方法です。
何か案は?