我在JavaScript中的for循环下有一个动态创建的html元素,这些动态元素也有一个动态id,我的问题是如何用动态id隐藏动态创建的元素。谢谢。
到目前为止,这是我的代码。我想以动态id为目标并隐藏它。
product_list += '<div class="plProductContainer hide" data-pids="' + a_data.products[i].pid + '" id="'+a_data.products[i].pid+'">';
它有一个动态的id。
发布于 2016-09-06 05:00:23
我建议您使用classes而不是id,但在本例中,您可以使用如下所示的内容。使用类隐藏元素。
$(document).ready(function(){
$(function(){
$(".add-more").on("click", function(){
var list = $(".list");
var random_id = Math.floor(Math.random() * (99999 - 1 + 1)) + 1;
var child = document.createElement("li");
var text = document.createTextNode("Lorem Ipsum");
child.setAttribute("id", random_id);
child.appendChild(text);
list.append(child);
});
});
$(function(){
$(".list").on("click", "li", function(){
var id = $(this).attr("id");
$("#" + id).addClass("hidden");
console.log("This id: " + id + " is hidden");
});
});
});
a{
color: blue;
cursor: pointer;
}
ul{
margin-top: 20px;
padding: 0;
}
li{
list-style: none;
cursor: pointer;
}
li:hover{
color: red;
}
li + li{
margin-top: 20px;
}
li.hidden{
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<div>
<a class="add-more">Click me!</a>
</div>
<ul class="list">
<li id="0">Lorem Ipsum</li>
</ul>
发布于 2016-09-06 02:54:48
document.getElementById(a_data.productsi.pid).style.display =‘无’;
发布于 2016-09-06 04:25:45
假设您使用的是jquery。尝试如下所示:
$(".plProductContainer.hide").hide();
或
var elementId = $(".plProductContainer.hide").attr("id");
$("#"+elementId).hide();
或者,如果您的元素位于id为someId的另一个元素中,则:
$("#"+someId).children()[i].hide(); //i is the loop counter that you have used to create element dynamically
或
$("#"+a_data.products[i].pid).hide(); //i is the loop counter that you have used to create element dynamically
如果你已经知道循环计数器的值,也就是i的值,那么就会变得更容易,如果你不知道,那么你也可以使用选择器,比如第n个孩子。让我知道如果上面的任何一个工作,否则我会提供更多的选择器。
https://stackoverflow.com/questions/39339895
复制