2017-10-09 153 views
-1

情况:我有一个Sharepoint列表。我有一个对象填充了很少的字符串元素。当这个函数触发时,我有一个事件。Javascript:如何创建基于对象的窗口/下拉菜单?

我想要什么:我想创建一个窗口或下拉菜单或任何用户可以点击元素来选择一个。

问题:我无法直接编辑HTML(Sharepoint自动生成),所以我可以做的是在脚本编辑器中添加一些脚本。任何创建菜单的选项都可以让用户从对象中进行选择。 (可能创建一个新窗口,并禁用点击网站的其他部分,在它打开将是最简单的方法,但我不知道)。

我可以请你给我演示一个如何创建它的例子吗?

//some code to generate the window/dropdown/ect here 
    function getData(info) //info is the object 
     { 
      for (var i = 0; i < info.length; i++) 
      { 
      //I should add the object elements to the window/dropdown/ect here 
      } 
     } 
+0

信息:{ “测试1”, “测试2”, “TEST3”, “TEST4”, “TEST5”} – Nefri

回答

1

首先选择要在HTML中创建下拉列表的位置。例如,假设你有,你要添加它div ...

<div id="yourplace"> 
</div> 

...所以首先你必须创建具有idselect元素。之后,您可以遍历信息对象,为每个值创建option元素并将其添加到创建的元素。

在这种情况下,因为你与对象的工作,但你可以使用jQuery的$.each()功能,所以你可以做这样的事情,你不能使用for ...

var myInfo = { 0: "test1", 
       1: "test2", 
       2: "test3", 
       3: "test4", 
       4: "test5" }; 

$('div#yourplace').append('<select id="infodropdown"></select>'); 

function getData(info) { 

    var myOptions = []; 
    $.each(info,function(index,value) { 
     myOptions.push('<option value="'+value+'">'+value+'</option>'); 
    }); 

    $('select#infodropdown').html(myOptions); 
} 

getData(myInfo); 

在这里你有一个测试小提琴... https://fiddle.jshell.net/rigobauer/16ot7w0b/

我希望它能帮助

+0

非常感谢你,这是成功了! – Nefri

+0

好听!祝你有美好的一天,快乐的编码! –