如何在 mousedown 事件后找到标签旁边的输入 ID?
How to I find the id of the input next to a label after mousedown event?
我有以下代码:
<div class="top">
<label id="_first"><input type="checkbox" class="AA" id="first">FIRST</label>
<label id="_second"><input type="checkbox" class="BB" id="second">SECOND</label>
<label id="_first"><input type="checkbox" class="AA" id="third">THIRD</label>
</div>
如何在单击标签时监听 mousedown
事件,然后获取该输入的 ID?
例如,如果我在单词 'THIRD' 上单击鼠标指针,我想将一个变量设置为输入 id = third
。我只想找到 ID,当存在某个 class(即 .BB
)的输入时。
我试过这样的事情:
$('label .BB').on('mousedown', function(){
var sel = $(this).attr('id'); // doesn't grab id of the adjacent input
});
$('label input.BB').click(function(e) {
//if(e.target.type != 'checkbox' ){//check for checkbox dont fire click
alert($(this).attr('id'))//use this context with find
//}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="top">
<label id="_first">
<input type="checkbox" class="AA" id="first">FIRST</label>
<label id="_second">
<input type="checkbox" class="BB" id="second">SECOND</label>
<label id="_first">
<input type="checkbox" class="AA" id="third">THIRD</label>
</div>
将此上下文用于查找
将子 input
元素的 for
属性设置为 id
替换 <label>
元素的 id
。在 mousedown
事件中获取 .htmlFor
个元素,共 label
个元素。
$("label").on("mousedown", function(e) {
console.log(this.htmlFor)
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="top">
<label for="first"><input type="checkbox" class="AA" id="first">FIRST</label>
<label for="second"><input type="checkbox" class="BB" id="second">SECOND</label>
<label for="third"><input type="checkbox" class="AA" id="third">THIRD</label>
</div>
您可以使用标签的 for
属性,它将匹配复选框的 id
属性
HTML
<div class="top">
<input type="checkbox" class="AA" id="first">
<label for="first">First</label>
<input type="checkbox" class="BB" id="second">
<label for="second">Second</label>
<input type="checkbox" class="AA" id="third">
<label for="third">Third</label>
</div>
JS
$('label').on('click', function() {
var getId = $(this).attr('for');
console.log(getId)
})
使用本机 javascript 方法
var first = document.getElementById('_first');
first.setAttribute('onclick','myFunction()');
function myFunction(){
var first = document.getElementById('_first');
var firstID = first.getAttribute('id');
//or
//var firstID = first.id;
}
我有以下代码:
<div class="top">
<label id="_first"><input type="checkbox" class="AA" id="first">FIRST</label>
<label id="_second"><input type="checkbox" class="BB" id="second">SECOND</label>
<label id="_first"><input type="checkbox" class="AA" id="third">THIRD</label>
</div>
如何在单击标签时监听 mousedown
事件,然后获取该输入的 ID?
例如,如果我在单词 'THIRD' 上单击鼠标指针,我想将一个变量设置为输入 id = third
。我只想找到 ID,当存在某个 class(即 .BB
)的输入时。
我试过这样的事情:
$('label .BB').on('mousedown', function(){
var sel = $(this).attr('id'); // doesn't grab id of the adjacent input
});
$('label input.BB').click(function(e) {
//if(e.target.type != 'checkbox' ){//check for checkbox dont fire click
alert($(this).attr('id'))//use this context with find
//}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="top">
<label id="_first">
<input type="checkbox" class="AA" id="first">FIRST</label>
<label id="_second">
<input type="checkbox" class="BB" id="second">SECOND</label>
<label id="_first">
<input type="checkbox" class="AA" id="third">THIRD</label>
</div>
将此上下文用于查找
将子 input
元素的 for
属性设置为 id
替换 <label>
元素的 id
。在 mousedown
事件中获取 .htmlFor
个元素,共 label
个元素。
$("label").on("mousedown", function(e) {
console.log(this.htmlFor)
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="top">
<label for="first"><input type="checkbox" class="AA" id="first">FIRST</label>
<label for="second"><input type="checkbox" class="BB" id="second">SECOND</label>
<label for="third"><input type="checkbox" class="AA" id="third">THIRD</label>
</div>
您可以使用标签的 for
属性,它将匹配复选框的 id
属性
HTML
<div class="top">
<input type="checkbox" class="AA" id="first">
<label for="first">First</label>
<input type="checkbox" class="BB" id="second">
<label for="second">Second</label>
<input type="checkbox" class="AA" id="third">
<label for="third">Third</label>
</div>
JS
$('label').on('click', function() {
var getId = $(this).attr('for');
console.log(getId)
})
使用本机 javascript 方法
var first = document.getElementById('_first');
first.setAttribute('onclick','myFunction()');
function myFunction(){
var first = document.getElementById('_first');
var firstID = first.getAttribute('id');
//or
//var firstID = first.id;
}