如何从一个函数中获取text()以便在另一个函数中使用?

时间:2019-02-03 15:23:18

标签: javascript jquery

我正在尝试将选择列表中的选项转换为文本,然后在返回Firebase消息主题的函数中使用文本。我不得不使用一个函数将文本正确地从列表中取出,但是我不知道如何在第二个函数中从函数中输出文本以用于消息传递。我可以用console.log记录文本,但是我不知道仅在message函数中输出文本本身该使用什么。我可能会使自己有些困惑。请注意:稍后将声明要使用的const,因此任何“为什么要声明这些const”的注释都将无济于事。我需要知道在两个###块中放什么才能使这项工作正常工作?

我尝试仅使用jquery的text()来简单输出所需的数据,但是每次都带来未定义的数据。我真正能够获得选项文本的唯一方法是将其放置在函数中,但是我实际上必须对其进行操作,而且我不确定哪个函数会给我想要的结果。

这是代码

const select = $("#schoolSelect");
     selectedOption = function() {
         ### WHAT GOES HERE? ###($("#schoolSelect option:selected").text())
     }
 const stage2 = $("#stage2Div");
 const stage3 = $("#stage3Div");
 const popupClose = $("#popupClose");
 const popup = $("#popup");
 const selectedValues = getSelectValues(select);
 // Alert Buttons Functions

 // Stage 2 Button
 // Sends Soft Lockdown to all devices subscribed

 stage2.click(function() {
     var select = $("#schoolSelect"),
     selectedValues = getSelectValues(select);
         if (selectedValues.length == 0) {
             popup.addClass("show");
         } 
         else if (selectedValues.length > 0) {
             for (var i = 0; i < selectedValues.length; i++) {
                 var message = createSLMessage(
                     "/topics/" + ### WHAT GOES HERE? ###
                 )
             sendMessage(message);
             }
         }
  });

作为参考,这是创建列表的jQuery

populateList = function() {
     $.getJSON("/assets/JSON/schools.JSON", function(result) {
         $.each(result, function(i){
         var schools = result.schools;
         var output = "";
             for (var i = 0; i < schools.length; i++) {
                 output += "<option>" + schools[i].topic + "</option>";
             }
             $("#schoolSelect").html(output);
         });
     })
 };

以下是表格的html(尽管不太重要)供参考

<select
  size="100"
  multiple
  id="schoolSelect"
  class="school_select"
  ></select>

我希望函数selectedOption实际输出文本。如果我将console.log放在函数selectedOption本身中###这里是###标签的位置,然后在以后调用selectedOption(),则控制台确实会从选择列表中记录正确的值。我有点不知所措,因为我知道必须有一些简单的方法来做到这一点,但我似乎无法弄清楚。

0 个答案:

没有答案