点击.option-item
后,我的输入标记类型隐藏了触发器(在JavaScript this
中)。
$("body").on("click", ".option-item", function() {
$("#resultaatArtisten").css("display", "none");
alert(this.$('input[type="hidden"]').val());
});

.option-list {
width: 100%;
height: 200px;
overflow-y: auto;
border: solid 1px #A9A9A9;
margin: 10px 0;
}
.option-item {
display: flex;
padding: 5px 10px;
transition: background-color 0.5s;
cursor: pointer;
}
.option-item:hover {
background-color: #1DD75F;
}
.artist-foto-container {
border-radius: 25px;
height: 50px;
width: 50px;
margin-right: 5px;
overflow: hidden;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<div class="option-item">
<input type="hidden" value="123"/>
<div class="artist-foto-container">
<img src="" style="" class="artist-foto" alt="Foto van "/>
</div>
<p>name</p>
</div>
&#13;
但如果给我这个错误:
未捕获的TypeError:
this.$
不是函数
有没有办法做到这一点?
答案 0 :(得分:3)
$("body").on("click", ".option-item", function() {
$("#resultaatArtisten").css("display", "none");
alert($(this).find('input[type="hidden"]').val());
});
希望这会起作用
答案 1 :(得分:2)
你可能意味着:
$(this).find('input[type="hidden"]').val()
我看到了你的想法,但你必须总是问this
的上下文价值是什么。在您的情况下,this
指向点击的div
,即HTML元素对象。
知道了这一点,很明显jQuery实例$
不存在于 - 不是DIV的子对象。
相反,要超越,即深入研究DIV,将其传递给jQuery(将其公开给jQuery API),然后使用find()
方法。
答案 2 :(得分:1)
您的语法完全错误。更改以下行:
alert(this.$('input[type="hidden"]').val());
要:
alert($(this).find('input[type="hidden"]').val());