【发布时间】:2017-04-12 04:35:53
【问题描述】:
我正在尝试获取单击元素的父级属性,并且正在通过 jQuery 动态添加应触发单击事件的元素。这是我的点击事件代码,根本不工作
$("body").on('click', ".colors_storage input", function (event) {
console.log($(event.target).parents().find('div.colors_storage_outer > select').attr('data-id'))
/*console.log(parent.attr('data-id'))
console.log(parent.attr('name'))*/
})
但是,此代码有效,但无论单击哪个输入元素,都只给出一个 id 855。
$("body").on('click', $(".colors_storage input"), function (event) {
console.log($(event.target).parents().find('div.colors_storage_outer > select').attr('data-id'))
/*console.log(parent.attr('data-id'))
console.log(parent.attr('name'))*/
})
这是我的 html 结构。
<div class="colors_storage_outer">
<select data-id="855" name="colors[]" multiple="" class="form-control colors_storage bulk-colors select2-hidden-accessible" data-placeholder="Colors" tabindex="-1" aria-hidden="true"></select>
<span class="select2 select2-container select2-container--default select2-container--above select2-container--focus" dir="ltr" style="width: 121.25px;">
<span class="selection">
<span class="select2-selection select2-selection--multiple" role="combobox" aria-haspopup="true" aria-expanded="false" tabindex="-1">
<ul class="select2-selection__rendered">
<li class="select2-search select2-search--inline">
<input class="select2-search__field" type="search" tabindex="0" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="textbox" aria-autocomplete="list" placeholder="Colors" style="width: 119.917px;">
</li>
</ul>
</span>
</span>
<span class="dropdown-wrapper" aria-hidden="true"></span>
</span>
</div>
<div class="colors_storage_outer">
<select data-id="853" name="colors[]" multiple="" class="form-control colors_storage bulk-colors select2-hidden-accessible" data-placeholder="Colors" tabindex="-1" aria-hidden="true"></select>
<span class="select2 select2-container select2-container--default select2-container--above select2-container--focus" dir="ltr" style="width: 121.25px;">
<span class="selection">
<span class="select2-selection select2-selection--multiple" role="combobox" aria-haspopup="true" aria-expanded="false" tabindex="-1">
<ul class="select2-selection__rendered">
<li class="select2-search select2-search--inline">
<input class="select2-search__field" type="search" tabindex="0" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" role="textbox" aria-autocomplete="list" placeholder="Colors" style="width: 119.917px;">
</li>
</ul>
</span>
</span>
<span class="dropdown-wrapper" aria-hidden="true"></span>
</span>
</div>
【问题讨论】:
-
这段代码中没有
.colors_storage input。 -
@MichaelCoker:代码确实有
.colors_storage input。注意单词之间的空格。它正在寻找带有`..colors_storage'类的元素内的input元素 -
@Sanchit 在哪里?页面上唯一的
.colors_storage元素是select,而input不能是select的子元素 -
@LouysPatriceBessette 这就是我的意思... select 是唯一具有
.colors_storage类的元素,并且selects 中没有input,所以.colors_storage input不存在页面。 -
@MichaelCoker:好的,我明白你的意思......你说得对。
标签: javascript jquery html css