Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按ID多次搜索。搜索不知道完整ID。Sapui5_Javascript_Jquery_Search_Sapui5_Getelementbyid - Fatal编程技术网

Javascript 按ID多次搜索。搜索不知道完整ID。Sapui5

Javascript 按ID多次搜索。搜索不知道完整ID。Sapui5,javascript,jquery,search,sapui5,getelementbyid,Javascript,Jquery,Search,Sapui5,Getelementbyid,我想知道是否有任何选项可以通过id搜索元素,但不知道完整id,只知道其中的一部分。因此,我可以在不知道其完整ID的情况下找到一个元素,或者找到具有类似ID的多个元素 例如,如果我知道我有3个具有以下ID的对象: “object1”、“object2”和“object3” 我可以说: getElementByID(“objectID*”) 我已经在JavaScript中使用:input[id*='PART\u OF\u id\u I\u KNOW'] 但是它返回了一个HTML对象,我需要它用于SA

我想知道是否有任何选项可以通过id搜索元素,但不知道完整id,只知道其中的一部分。因此,我可以在不知道其完整ID的情况下找到一个元素,或者找到具有类似ID的多个元素

例如,如果我知道我有3个具有以下ID的对象:

“object1”、“object2”和“object3”

我可以说:

getElementByID(“objectID*”)

我已经在JavaScript中使用:
input[id*='PART\u OF\u id\u I\u KNOW']

但是它返回了一个HTML对象,我需要它用于SAPUI5

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

但不必匹配完整ID(myID)?谢谢

它不会起作用。这是因为当您试图通过sap.ui.getCore()获取控制时,sapui5会自动将额外的字符串添加到您的id中,例如
sap.ui.getCore().byId('xml0--myId')
,如果您在清单中提供了viewId,则在呈现控制时它会使用该字符串。如
sap.ui.getCore().byId('yourManifiestId--myId')

虽然我不建议这样做,但在您描述的方式上是可能的。您可以使用jQuery查找具有类似ID的元素,获取元素的ID并将其传递给sap.ui.getCore().byId()


你为什么要这么做?是否因为您想访问视图和片段中的控件(带有前缀ID)?您是否为该控件提供了一个ID“myControl”,但是
sap.ui.getCore().byId(“myControl”)
在框架向其添加前缀时不起作用? 如果是,获取控件引用的唯一可靠方法是在MVC视图和控制器以及片段中使用框架提供的方法

如果您的视图中有一个名为“myButton”的控件,请从控制器中执行
this.byId(“myButton”)
this.getView().byId(“myButton”)
,以获取对控件的引用

如果在通过sap.ui.xmlfragment(“,”myFragment.fragment.xml“)嵌入视图的片段中有一个名为“myButton”的控件,则使用
sap.ui.core.fragment.byId(“,”myButton”)
访问它


无论您做什么,都不要假设框架如何创建这些前缀ID。这些没有文档记录,可以更改。

不知道SAPUI5,但是您已经标记了这个
jquery
,并在javascript中使用了jquery选择器,请在jquery中尝试:
$(“输入[id*='PART\u OF_id\u I\u KNOW'”)
when you use `var myControl = sap.ui.getCore().byId('myId');` 
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.