获取此元素的输入字段

时间:2015-12-13 15:33:57

标签: jquery html

点击.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;
&#13;
&#13;

但如果给我这个错误:

  

未捕获的TypeError: this.$不是函数

有没有办法做到这一点?

3 个答案:

答案 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());