我遇到了一些有关动态创建元素的问题。我正在尝试为我的网站创建一个页面,该页面将显示一个用户列表(已从控制器传递到我的视图中)。对于每个用户我创建了一个div持有者,并且在每个div中我有两个h3标签,同时显示用户的ID和名称。每个用户div还包含一个按钮,允许用户隐藏或显示。
<div class="single-user" id="@user.Hidden.ToString()">
<h3>ID: @user.Id</h3>
<h3>Name: @user.Forename @user.Surname</h3>
<span><input type="submit" class="sub-btn" /></span>
</div>
以及'name'和'id'属性我也传递了一个'隐藏的bool属性。这用于检查用户是否已被隐藏。我遇到的问题是因为元素是动态创建的,它们都共享相同的classe和id,所以我无法检查用户是否被隐藏。我在网上找了一个可能的解决方案,然而,它仍然没有用。这是我的javascript代码。
<script type="text/javascript">
$('.single-user').on('click', '.sub-btn', function () {
if ($('.single-user').has('#True')) {
console.log("true");
}
else {
console.log("false");
}
});
</script>
非常感谢任何帮助。
答案 0 :(得分:2)
<div class="single-user" data-visible="@user.Hidden.ToString()">
<h3>ID: @user.Id</h3>
<h3>Name: @user.Forename @user.Surname</h3>
<span><input type="submit" class="sub-btn" /></span>
</div>
<script type="text/javascript">
$(document).on('click', '.sub-btn', function () {
if ($(this).closest('.single-user').attr('data-visible')=="True") {
console.log("true");
}
else {
console.log("false");
}
});
</script>