0

在这样的代码中:

        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'>&nbsp;</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 的元素。

有任何想法吗?

4

2 回答 2

1

如果我理解正确,您正在寻找的是:

$(this).siblings("td[class='ms-formbody']").each(..
于 2013-03-24T17:30:05.457 回答
0

尝试

$(this + " td[class='ms-formbody']").each(...

或者

$(this).find("td[class='ms-formbody']").each(...

是否有理由为类使用属性等于选择器?你应该只写:td.ms-formbody

于 2013-03-24T17:30:42.627 回答