Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript select标记上的更改如何触发img的src更改?_Javascript_Html - Fatal编程技术网

Javascript select标记上的更改如何触发img的src更改?

Javascript select标记上的更改如何触发img的src更改?,javascript,html,Javascript,Html,是否可以将根据所选选项更改的图像放入选择标记中?我需要更改select标记中与所选国家/地区匹配的国旗图像。概念验证如下 HTML 小提琴: 解释 您需要一个select标记和一个img标记。更改select标记将更改img标记的src。好的,您可以这样做 所需更改: HTML 您需要像这样将您的选择包装在一个容器中,并创建一个文件。该文件从所选选项的数据标志属性中获取文本,并将其添加为图像的路径。在这种情况下,图像必须与JS文件放在同一目录中。您必须根据文件夹结构进行更改 例如: $'flag

是否可以将根据所选选项更改的图像放入选择标记中?我需要更改select标记中与所选国家/地区匹配的国旗图像。

概念验证如下

HTML 小提琴:

解释
您需要一个select标记和一个img标记。更改select标记将更改img标记的src。

好的,您可以这样做

所需更改:

HTML

您需要像这样将您的选择包装在一个容器中,并创建一个文件。该文件从所选选项的数据标志属性中获取文本,并将其添加为图像的路径。在这种情况下,图像必须与JS文件放在同一目录中。您必须根据文件夹结构进行更改

例如:

$'flag'.attrsrc,../images+$this.find':selected'.attr'data-flag'+.svg

最后一个代码片段在这里,我稍微更改了CSS,因为您的一些SAS引用了一些未在样式中定义的变量

忽略代码段错误,它们会弹出,因为源文件不可用

$function firstFunction{ $'.pr price'.hide; $'.d2'。显示; $'flag'.attrsrc,$this.find':selected'.attr'data-flag'+.svg; $'select'.onchange,函数{ $'.pr price'.hide; $'.d'+$this.val.show; $'flag'.attrsrc,$this.find':selected'.attr'data-flag'+.svg; }.1; }; 函数myFunction{ var language=document.getElementByIdselect.value; sessionStorage.setItemmarketcode,语言; } 全球英语{ 左侧填充:.5em; } 接触{ 浮动:对; 右侧填充:.5em; 右边框:1px实心333; 颜色:白色; } .下拉开关{ 颜色:fff; } .px-4.py-3{ 宽度:15em; } .下拉标题{ 字号:700; 边缘底部:.1米; } .内部语言标题{ 字号:700; } .btn灯{ 背景色:白色; 边缘底部:1.5em; 宽度:12em; } .btn红色{ 背景色:红色; } .选择包装器{ 位置:相对位置; 边缘底部:1米; } 旗{ 宽度:自动; 高度:20px; 显示:块; 位置:绝对位置; 最高:50%; 左:5px; 转化:translateY-50%; } 挑选{ 宽度:13em; 填充物:5em.5em.5em 3em; } a{ 颜色:333; } a:悬停{ 文字装饰:下划线; 文字装饰颜色:红色; 文字装饰风格:立体; } .下拉菜单{ 宽度:17em; } 。保存更改{ 文本对齐:居中; 左边距:1米; } 下拉菜单3{ 边缘底部:3em; } 国家

货币-> 德国 西班牙 巴塞罗那 瑞典 语言

德国

英式

弗朗索瓦

西班牙文

英式

弗朗索瓦

普通话

英式

弗朗索瓦

日文

英式

弗朗索瓦

通货

欧元 行动 另一个动作 还有别的吗 -> 保存更改
显示你的html代码,这是可以做到的。给我们看看你的代码。这是我的小提琴作品。问题是什么?我需要将国旗作为图像添加到所选国家/地区。我似乎无法在选择标签上添加图像。另外,图像必须根据所选国家/地区进行更改。谢谢,但是您可以将图像放置在选择标签内吗?在小提琴中,图像应该位于第一个文本的旁边button@Cray不,您应该将select标记放在一个div中,并使用包装器div的background image CSS属性。类似于@Cray的东西不必担心图像被重复,您可以使用CSS很好地设计它。
<select id="select" onchange="window.changeSrc(this);">
    <option value="https://www.funnyhoop.com/wp-content/uploads/2018/06/funny-animals-1-5.jpg">First</option>
    <option value="https://pbs.twimg.com/profile_images/821849411991044096/lQFa_Vly_400x400.jpg">Second</option>
</select>
<img src="" id="img"
</body>
window.changeSrc = function(that) {
    document.getElementById("img").src = that.value;
}
window.changeSrc(document.getElementById('select'));
  <select id="select" name="cd-dropdown" class="cd-select" onchange="myFunction()">
  <!-- <option value="-1" selected>Currency</option>   -->
  <option data-flag="Germany" value="1" select>Germany </option>
  <option data-flag="Spain" value="2">Spain</option>
  <option data-flag="Barcelona" value="3">Barcelona</option>
  <option data-flag="Sweden" value="4">Sweden</option>
  </select>
</div>
.select-wrapper {
  position: relative;
  margin-bottom: 1em;
}

#flag {
  width: auto;
  height: 20px;
  display: block;
  position: absolute;
  top: 50%;
  left: 5px;
  transform: translateY(-50%);
}

select {
  width: 13em;
  padding: .5em .
$(function firstFunction() {
  $('.pr-price').hide();
  $('.d2').show();
  $('#flag').attr("src", $(this).find(':selected').attr('data-flag') + ".svg");

  $('#select').on("change", function () {
    $('.pr-price').hide();
        $('.d' + $(this).val()).show();
        $('#flag').attr("src", $(this).find(':selected').attr('data-flag') + ".svg");
  }).val("1");
});
function myFunction() {
  var language = document.getElementById("select").value;
  sessionStorage.setItem("marketcode", language);
}