我有一个GridView控件嵌入div中,如
<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");
});
答案 0 :(得分:2)
相对于GridView,您最好使用closest()
方法:
var parentElement = $("#grdView").closest("#parentDiv"); // or $("#parentDiv")
它将比div
更好地获得相应的parent()
,因为GridView的父节点是p
元素。
更新。为了仅为文字设置背景,您必须将其放在个人span
或div
标记中:
<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");
答案 1 :(得分:0)
由于grdView
的父级是p
元素,因此您可以更改
var parentElement = $('#grdView').closest("div");
进一步参考:http://api.jquery.com/closest/
在这里也使用camelCase表示法:
.css("backgroundColor", "#ffaaaa");
如果您只需要为即时文本节点提供绿色背景,只需覆盖p
元素上的背景颜色
$('#parentDiv > p').css("backgroundColor", "<other color here>");
答案 2 :(得分:0)
我的代码(不起作用) - ,因为如果你写runat="server"
id而不是gridview,请查看源代码中的id,我认为它将是ContentPlaceHolder1_grdView或类似的东西< / p>
$(document).ready(function () {
var parentElement = $('#grdView').parent("div");
parentElement.css("background-color", "#ffaaaa");
});
答案 3 :(得分:0)
为了给出包含元素着色而不影响网格的错觉,您需要为网格着色与背景相同的颜色。
$("#grdView").css("backgroundColor",$("body").css("backgroundColor"));
$("#grdView").closest("div").css("backgroundColor","#ffaaaa");