javascript - 在复选框选择上使用 img src 创建 div

标签 javascript jquery html

我正在尝试创建一个更改函数,为每个选中复选框选择创建一个div,并且当 未选中时,还会删除 div。

在这些新的 div 中,我还想发送复选框的 img src

*注意** 我当前的 JS 就我所知,第二个函数仅从选定的复选框中获取 img src 并将其发送到带有 id="loc 的图像- 已选择”

$(".loc-check").change(function(event) {
  var x = $(this).val();

  if ($(this).prop("checked") == true) {} else {}
});

function changeImg(elm) {
  var val = elm.value;
  var img = document.getElementById("img-" + val);
  var src = img.src;
  var imgSelectedRadio = document.getElementById("loc-selected");

  imgSelectedRadio.src = src;
}
#loc-selected {
  height: 50px;
  width: 50px;
}

#loc-checkboxs {
  display: flex;
  padding: 20px;
}

#loc-checkboxs label {
  display: block;
  height: 38px;
  width: 38px;
  cursor: pointer;
  position: relative;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="loc-checkboxs">
  <label for="usa">
			<input class="loc-check" type="checkbox" id="usa" value="usa" onchange="changeImg(this)"/>
			<span><img id="img-usa" src="https://uploads-ssl.webflow.com/57e5747bd0ac813956df4e96/5a2f052996bde90001f96632_united-states-of-america.svg"><span>
		</label>
  <label for="canada">
			<input class="loc-check" type="checkbox" id="canada" value="canada" onchange="changeImg(this)"/>
			<span><img id="img-canada" src="https://uploads-ssl.webflow.com/57e5747bd0ac813956df4e96/5a2cd7b0937442000184b147_canada.svg"><span>
		</label>
  <label for="uk">
			<input class="loc-check" type="checkbox" id="uk" value="uk" onchange="changeImg(this)"/>
			<span><img id="img-uk" src="https://uploads-ssl.webflow.com/57e5747bd0ac813956df4e96/5a985a90ec8f79000104514a_united-kingdom.svg"><span>
		</label>
</div>
<div class="new-div-wrapper">
  <div class="new-div">
    <img id="loc-selected"></img>
  </div>
</div>

最佳答案

我修改了您的代码以动态添加与复选框的值具有相同类的项目。如果您取消选中,它会自动将其删除。

$("input.loc-check").change(function(event) {
  var value = $(this).val();
  if ($(this).is(":checked")) {
    $(".new-div-wrapper").append($(this).next().clone().wrapAll("<div class='new-div'></div>").parent().addClass(value));
  } else {
    $(".new-div-wrapper ." + value).remove();
  }
});
#loc-selected {
  height: 50px;
  width: 50px;
}

#loc-checkboxs {
  display: flex;
  padding: 20px;
}

#loc-checkboxs label {
  display: block;
  height: 38px;
  width: 38px;
  cursor: pointer;
  position: relative;
}

.new-div {
  width:100px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="loc-checkboxs">
  <label for="usa">
			<input class="loc-check" type="checkbox" id="usa" value="usa"/>
			<span><img id="img-usa" src="https://uploads-ssl.webflow.com/57e5747bd0ac813956df4e96/5a2f052996bde90001f96632_united-states-of-america.svg" \></span>
		</label>
  <label for="canada">
			<input class="loc-check" type="checkbox" id="canada" value="canada"/>
			<span><img id="img-canada" src="https://uploads-ssl.webflow.com/57e5747bd0ac813956df4e96/5a2cd7b0937442000184b147_canada.svg" \></span>
		</label>
  <label for="uk">
			<input class="loc-check" type="checkbox" id="uk" value="uk"/>
			<span><img id="img-uk" src="https://uploads-ssl.webflow.com/57e5747bd0ac813956df4e96/5a985a90ec8f79000104514a_united-kingdom.svg" \></span>
		</label>
</div>
<div class="new-div-wrapper">
</div>

关于javascript - 在复选框选择上使用 img src 创建 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49161933/

相关文章:

html - 组合 li、 radio 输入和标签时顶部无填充

javascript - 如何使用 javascript 将主要数据集链接到次要数据集?

javascript - 将缓冲区作为不带空字节的 Uint8Array 传递

javascript - GWT - 范围错误 : Maximum call stack size exceeded at spliceArray

javascript - 移动时CSS响应 slider 垂直转动

javascript - 使用 JQuery 链接动态创建的下拉列表

html - 两个绝对定位的 div 上的 IE6 z-index

javascript - 使用 Angularjs 在多个文本框中自动完成

jqueryui 打开多个对话框;应该只打开一个

javascript - 需要根据jquery中给定的数值分割字符串