jQuery CSS 选择器在 sap.m.table 单元格上不起作用,但 addStyleClass 可以,我做错了什么?
jQuery CSS selector doesn't work on sap.m.table cell but addStyleClass does, what am I doing wrong?
我有一个 table,我想将第 0 行第 0 列中单元格的颜色设置为红色。但是,我能够执行此操作的唯一编程方式是通过 addStyleClass,我不想这样做。
以下是我尝试过的一些方法:
oTable.getItems()[0].getCells()[0].$().css("background-color", "red");
&
$(oTable.getItems()[0].getCells()[0]).css("background-color", "red")
&
$("#" + oTable.getItems()[0].getCells()[0].css("background-color", "red"))
但是,none 这些工作。不过,他们不会在控制台中给我任何错误。
唯一对我有用的是:
oTable.getItems()[0].getCells()[0].addStyleClass("redBackground")
并将 redBackground 中的背景颜色设置为红色。我不想这样做,因为我将通过我的应用程序将获得的数据动态设置颜色。
已使用 JSfiddle 更新:https://jsbin.com/sejavuqopa/2/edit?html,css,js,output。
使用超时。您还必须使用 .parent()
为整个单元格着色,而不是为该单元格中的数字着色。试试这个:
setTimeout(function(){
oTable.getItems()[0].getCells()[0].$().parent().css("background-color", "red");
});
我真的很喜欢@alexP 的回答背后的想法,但我既不喜欢 jQuery(已弃用,最终将从 UI5 中删除),也不喜欢使用 [=11= 将消息放入浏览器队列中] 和零延迟。
所以这是我的方法:
oTable.placeAt("content");
// put new code directly behind placeAt
oTable.addEventDelegate({
onAfterRendering: function () {
oTable.getItems()[0].getCells()[0].getDomRef().parentNode.style.backgroundColor = "red";
}
}, this);
我有一个 table,我想将第 0 行第 0 列中单元格的颜色设置为红色。但是,我能够执行此操作的唯一编程方式是通过 addStyleClass,我不想这样做。
以下是我尝试过的一些方法:
oTable.getItems()[0].getCells()[0].$().css("background-color", "red");
&
$(oTable.getItems()[0].getCells()[0]).css("background-color", "red")
&
$("#" + oTable.getItems()[0].getCells()[0].css("background-color", "red"))
但是,none 这些工作。不过,他们不会在控制台中给我任何错误。
唯一对我有用的是:
oTable.getItems()[0].getCells()[0].addStyleClass("redBackground")
并将 redBackground 中的背景颜色设置为红色。我不想这样做,因为我将通过我的应用程序将获得的数据动态设置颜色。
已使用 JSfiddle 更新:https://jsbin.com/sejavuqopa/2/edit?html,css,js,output。
使用超时。您还必须使用 .parent()
为整个单元格着色,而不是为该单元格中的数字着色。试试这个:
setTimeout(function(){
oTable.getItems()[0].getCells()[0].$().parent().css("background-color", "red");
});
我真的很喜欢@alexP 的回答背后的想法,但我既不喜欢 jQuery(已弃用,最终将从 UI5 中删除),也不喜欢使用 [=11= 将消息放入浏览器队列中] 和零延迟。
所以这是我的方法:
oTable.placeAt("content");
// put new code directly behind placeAt
oTable.addEventDelegate({
onAfterRendering: function () {
oTable.getItems()[0].getCells()[0].getDomRef().parentNode.style.backgroundColor = "red";
}
}, this);