【问题标题】:how can i fix this, my value outputs only the first word我该如何解决这个问题,我的值只输出第一个单词
【发布时间】:2020-08-08 11:22:37
【问题描述】:

我正在尝试设置一个类别和一个子类别。为了做到这一点,我必须让所选类别与子类别父亲完全相同,以便我可以从我的 firestore 中获取子类别。

但是当我尝试获取值时,我的值只输出第一个单词。
例如,当我选择school supplies 时,我只会得到school 作为我的value
这就是我的JS 代码的样子。

const category = document.getElementById('category');

database.collection("category").get().then(function(querySnapshot) {
  querySnapshot.forEach(function(doc) {
    const categoryItem = doc.data().category;
    category.innerHTML += "<Option value="+categoryItem+">"+ categoryItem +"</Option>"
  });
});

function getComboA(selectObject) {
  var value = selectObject.value;  
  console.log(value);
}

这是我的HTML。但是当我选择男性时,它给了我整个 value man male

<select id="category" onchange="getComboA(this)">
  <option value="man male">Male</option>
</select>

【问题讨论】:

标签: javascript html firebase google-cloud-firestore


【解决方案1】:

从你的问题标题来看,你不会从你的选项中得到当前选中的value的第一个字。

因此,如果所选选项的值为school supplies,您希望获得school,或者如果值为man male,您希望获得man

为此,您可以将值转换为array,并将该数组的第一个element 引用为第一个单词。

function getComboA(selectObject) {
  const words = selectObject.value.split(" ");
  const firstWord = words[0];

  console.log(firstWord);
}
<select id="category" onchange="getComboA(this)">
  <option value="man male">Male</option>
  <option value="school supplies">School Supplies</option>
</select>

【讨论】:

  • 不,它只给我第一个单词,我想得到完整的单词
【解决方案2】:

我做了什么 "&lt;Option value="+categoryItem+"&gt;"+ categoryItem +"&lt;/Option&gt;"

应该是什么 "&lt;Option value=\""+categoryItem+"\"&gt;"+categoryItem+"&lt;/Option&gt;"

应该把\""+string+"\"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-25
    • 2020-02-14
    • 2022-12-10
    • 2021-07-31
    • 2020-12-28
    相关资源
    最近更新 更多