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");
});

JSBin

我真的很喜欢@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);