2017-02-28 99 views
2

我想知道是否有任何選擇通過它的id搜索元素,但不知道完整的ID,只有它的一部分。因此,我可以在不知道其完整ID的情況下找到元素,或者找到具有相似ID的多個元素。通過ID進行多次搜索。搜索不知道完整的ID。 Sapui5

例如,如果我知道我有3個對象與以下ID:

「objectID1」 「objectID2」 和 「objectID3」。

難道我是這樣的:

getElementByID("objectID*")

我已經使用JavaScript中試了一下:input[id*='PART_OF_ID_I_KNOW']

但它返回一個HTML對象,我需要它SAPUI5。

我可以使用類似: var myControl = sap.ui.getCore().byId('myId');

但沒有相匹配的完整的ID(身份識別碼)?謝謝。

+0

約SAPUI5不知道,但你標記這個'jquery'和用於JavaScript jQuery選擇,嘗試在jQuery的:'$( 「輸入[ID * = 'PART_OF_ID_I_KNOW']」)' –

回答

0
when you use `var myControl = sap.ui.getCore().byId('myId');` 

也不會work.It是因爲當您嘗試獲取由sap.ui.getCore(控制)sapui5自動CONCAT額外字符串到標識如sap.ui.getCore().byId('xml0--myId'),如果你有清單中,然後同時提供viewId渲染控制它使用它。例如 sap.ui.getCore().byId('yourManifiestId--myId')

2

雖然我不建議這一點,但你描述it.You可以尋找元素與同類ID與jQuery,獲得元素的ID,並把它傳遞給sap.ui.getCore有可能的方式() .byId();

var aElements = $("div[id*='PART_OF_ID_YOU_KNOW']"); 
//Lets say the first element returned is the one belonging to your control 
var oControl = sap.ui.getCore().byId(aElements[0].id); //If the element is a SAPUI5 control, you should get it. 
0

爲什麼你需要這樣做?是否因爲您想要在視圖和片段中訪問控件(帶有前綴ID)?您是否向控件提供了「myControl」的標識,但sap.ui.getCore().byId("myControl")不起作用,因爲該框架爲其添加了前綴? 如果是的話,獲得對你的控件的引用的唯一可靠的方法是在MVC視圖和控制器中使用框架提供的方法和片段。

如果你有一個在你看來名爲「myButton的」控制,做this.byId("myButton")this.getView().byId("myButton")從控制器到你控制的參考。

如果你有一個在您在您的視圖通過sap.ui.xmlfragment嵌入一個片段名爲「myButton的」控制(「」,「myFragment.fragment.xml」),然後使用sap.ui.core.Fragment.byId("<prefix>", "myButton")來訪問它。

不管你做什麼,不就框架如何創建這些前綴標識做出假設。這些沒有記錄並可以更改。