【问题标题】:How to Change Text on Page Depending on Selected Item from Semantic UI's Dropdown?如何根据语义 UI 下拉列表中的选定项目更改页面上的文本?
【发布时间】:2019-06-26 02:20:23
【问题描述】:

当我从 Semantic UI 的下拉菜单中选择一个项目时,我在尝试自动更改页面上两个 div 标签中的文本时遇到了麻烦。我不确定我哪里出错了。我制作了一个 javascript 函数,它应该针对下拉列表并从那里检索值。

这是 HTML 代码

<h2 class="sTypeText">Undefined</h2>
<span class="annotation">
  You've selected <b class="sTypeText">undefined</b> mode. You can continually edit this mode and its details.
</span>

<div id="dropdown" class="ui fluid selection dropdown" onchange="changeSelect">
  <div class="text">Choose Type</div>
  <i class="dropdown icon"></i>
  <div class="menu">
    <div class="item" data-value="A">Assessment</div>
    <div class="item" data-value="G">Group</div>
    <div class="item" data-value="S">Solo</div>
  </div>
</div>

这是 Javascript 代码:

function changeSelect() {
    if (document.getElementById("dropdown").data-value == "A") {
        document.getElementByClassName("sTypeText").innerHTML = "Assessment";
    } else if (document.getElementById("dropdown").data-value == "G") {
        document.getElementByClassName("sTypeText").innerHTML = "Group"; 
    } else if (document.getElementById("dropdown").data-value == "S") {
        document.getElementByClassName("sTypeText").innerHTML = "Solo";
    }
}

【问题讨论】:

    标签: javascript html semantic-ui


    【解决方案1】:

    要获取数据属性值,您可以尝试使用{DOMElement}.getAttribute('data-{name of attribute}') 或使用dataset 属性:{DOMElement}.dataset.{name of attribute}

    尝试将代码更改为此以从数据属性“value”中获取值:

    function changeSelect() {
        if (document.getElementByClassName("dropdown").dataset.value == "A") {
            document.getElementByClassName("sTypeText").innerHTML = "Assessment";
        } else if (document.getElementById("dropdown").dataset.value == "G") {
            document.getElementByClassName("sTypeText").innerHTML = "Group"; 
        } else if (document.getElementById("dropdown").dataset.value == "S") {
            document.getElementByClassName("sTypeText").innerHTML = "Solo";
        }
    }
    

    【讨论】:

    • 你试过document.getElementByClassName("dropdown").getAttribute('data-value')吗?
    • 是的,我都试过了。不幸的是,它根本不会动态更改 HTML
    • 我认为你需要将事件处理程序绑定到select元素的语义UI生成的onchange事件而不是包含div,语义UI文档中应该有一个处理程序。您可以在 SO 上查看此答案:stackoverflow.com/questions/20817669/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-03
    相关资源
    最近更新 更多