0

我在 div 中嵌入了一个 GridView 控件,如下所示

<div id="parentDiv">
        Hello how r u
        <p>
            <asp:GridView ID="grdView" runat="server">
            </asp:GridView>
        </p>
    </div>

我想要实现的是,找到网格的父元素(即“parentDiv”)并将背景颜色设置为绿色。我的代码(不起作用)

$(document).ready(function() {
    var parentElement = $('#grdView').parent("div");
    parentElement.css("background-color", "#ffaaaa");
});​
4

4 回答 4

2

相对于GridView,你最好使用closest()方法:

var parentElement = $("#grdView").closest("#parentDiv");  // or $("#parentDiv")

由于 GridView 的父节点是元素,它将得到相应的div优于。parent()p


更新。为了只为文本设置背景,您必须将其放在个人spandiv标签中:

<div id="parentDiv">
    <span>Hello how r u</span>
    <p>
        <asp:GridView ID="grdView" runat="server">
        </asp:GridView>
    </p>
</div>

然后使用以下 JavaScript 代码:

var parentElement = $("#grdView").closest("#parentDiv").children("span");
         // or just $("#parentDiv").children("span");
于 2012-06-04T11:41:40.900 回答
0

因为grdView' 的父母是一个p元素,也许你应该改变

 var parentElement = $('#grdView').closest("div");

进一步参考:http ://api.jquery.com/closest/

在这里也使用驼峰命名法:

 .css("backgroundColor", "#ffaaaa");

如果您只需要为直接的文本节点提供绿色背景,只需覆盖p元素上的背景颜色

$('#parentDiv > p').css("backgroundColor", "<other color here>");
于 2012-06-04T11:40:42.000 回答
0

我的代码(不起作用) -因为 id 不是 gridview 如果你runat="server"在源代码中看到 id,我认为它将是 ContentPlaceHolder1_grdView 或类似的东西

$(document).ready(function () {           

            var parentElement = $('#grdView').parent("div");
            parentElement.css("background-color", "#ffaaaa");


        });
于 2012-06-04T11:55:58.443 回答
0

为了在不影响网格的情况下赋予包含元素着色的错觉,您需要将网格着色为与背景相同的颜色。

$("#grdView").css("backgroundColor",$("body").css("backgroundColor"));
$("#grdView").closest("div").css("backgroundColor","#ffaaaa");
于 2012-06-04T12:00:54.160 回答