试图在jQuery中选择一个兄弟值

时间:2013-03-24 17:24:28

标签: jquery jquery-selectors

在这样的代码中:

        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的元素。

有什么想法吗?

2 个答案:

答案 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