GetElementyID(“ID”).innerHTML = 值无法按预期工作 [已关闭]

GetElementyID("ID").innerHTML = value doesn´t work as expected [closed]

提问人:Dorian Feyerer 提问时间:10/2/2023 最后编辑:Dorian Feyerer 更新时间:10/15/2023 访问量:90

问:


想改进这个问题吗?通过编辑这篇文章添加详细信息并澄清问题。

上个月关闭。

我尝试在顶部导航栏中更改 HTML 中字符串的文本值和颜色(img ressource 已删除)。

这里有什么错误?如果 ELement 嵌套在类中,则引用 ELement 的 ID 就足够了吗?目前这种方法不起作用(在 HTML 中没有变化)。

通过导航栏(选择语言)将 HTML 页面上的文本值替换为自定义/翻译文本将是一个快速测试。

故障说明:
单击按钮元素时,文本元素不会更改。

<!DOCTYPE html>
<html>
<meta name="viewport" content="width=device-width, initial-scale=1">
<head></head>
<style>

.topnav {
  overflow: hidden;
  width: 645px;
  background-color: white;
  border-top: 1px solid black;
  border-bottom: 1px solid black;
  border-right: 1px solid black;
  position: center;
  margin-left: -32px;
}

.topnav a {
  float: left;
  color: black;
  background-color: white;
  text-align: center;
  padding: 10px 8px;
  text-decoration: none;
  text-align: center;
  font-weight: 600;
  font-size: 16px;
  border-left: 1px solid black;
}

.topnav a:hover {
  background-color: darkgrey;
  color: white;
  cursor: pointer;
}

div a img {
    width: 21px;
    height: 12px;
    margin-left: 5px;
}

</style>
<body>
    
<script>

    function funcAT(){
        document.getElementById("TEST1").innerHTML ="TestOfFunction";
        document.getElementById("TEST1").style.color = "red";
    }
    
    function funcDE(){
        document.getElementById("TEST2").innerHTML ="TestOfFunction 2";
        document.getElementById("TEST2").style.color = "red";
    }
    
        
</script>

<div class="topnav">
    
  <a class="lang_btn"><i class="fa fa-commenting-o"></i>&nbsp; Verfügbare Sprachen und Länder</a>
        <a><img id="AT" onclick="funcAT()" src="...">&nbsp;&nbsp;AT</a>
        <a><img id="DE" onclick="funcDE()"  src="...">&nbsp;&nbsp;DE</a>
        <a><img id="PL" onclick="funcPL()"  src="...">&nbsp;&nbsp;PL</a>
        <a><img id="RO" onclick="funcRO()"  src="...">&nbsp;&nbsp;RO</a>
        <a><img id="UK" onclick="funcUK()"  src="...">&nbsp;&nbsp;UK</a>
</div><br>

<p id="TEST" >predefined value</p>
<p id="TEST1">predefined value 1</p>
<p id="TEST2">predefined value 2</p>

</body>
</html>
HTML CSS OnClickListener

评论

0赞 Nico Haase 10/2/2023
相反会发生什么?你确定这个问题与CSS有关吗?
0赞 Dorian Feyerer 10/2/2023
这是一个 sharepoint 网站,通过现代脚本编辑器实现了 CSS/HTML。
1赞 KIKO Software 10/2/2023
您是否检查了浏览器控制台中的错误消息?任何 Javascript 错误都可能停止几乎所有 Javascript 的执行。
1赞 Nico Haase 10/2/2023
请记住,所有澄清都应该是您初始帖子的一部分。请编辑它以包含所有详细信息
1赞 KIKO Software 10/2/2023
补充一下 Nico Haase 所说的话:您的问题的任何解决方案都应该发布在问题的答案中,而不是问题中。

答:

1赞 Dorian Feyerer 10/2/2023 #1

解决方法:
使用按钮而不是 img+text 作为顶部导航栏元素,因为在实际方法中,只有在直接单击 img 元素时才会发生效果。

不幸的是,我没有注意到这一点,因为我在功能方面将整个元素解释为一个按钮(但没有以这种方式实现它,而是作为单独的 a 和 img 元素 ->所以只有图像响应点击)。

因此,没有错误的行为,而是不正确的实现。

感谢您的帮助!

评论

1赞 KIKO Software 10/2/2023
将 onclick 处理程序附加到元素而不是元素也会有所帮助。<a><img>
-1赞 Siamak Rasouli 10/2/2023 #2

您设置了 OnClick On 标签,因此您必须单击以替换和更改标签内文本的颜色。 我想你想创建一个按钮,为此,你需要将 onlick 从移动到标签。<img><img><p><img><a>

<a onclick="funcAT()"><img id="AT" src="...">&nbsp;&nbsp;AT</a>