如何在 jQuery 中找到最近的兄弟姐妹
How to find the closest sibling in jQuery
我正在努力学习jQuery,我有以下标记
在 div 中,我有两个文本日期和说明以及两个编辑和删除按钮。
当我点击编辑按钮时,我想获取那个 div
的日期和描述
我在这里尝试使用 parents()
选择器获取它,我如何在这里使用 closest()
选择器,如果当前标记不可能,请建议我如何继续 closest()
选择器。
$(document).ready(function() {
//If i click on edit button . I want to select the corresponding date and description .How can we do that?
$(".taskTemplate .edit").on('click', function(event) {
editTask(event.target);
});
});
function editTask(node) {
var date = $(node).parents('.taskTemplate').find('.date').html();
alert(date);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="taskTemplate">
<span class="date">205-10-09</span>
<span class="desc">description of task</span>
<input type="button" class="edit" value="edit">
<input type="button" class="delete" value="delete">
<span class="done">done</span>
</div>
<div class="taskTemplate">
<span class="date">2015-11-19</span>
<span class="desc">description of task2</span>
<input type="button" class="edit" value="edit">
<input type="button" class="delete" value="delete">
<span class="done">done</span>
</div>
只需将 parents()
替换为 closest()
in :
var date = $(node).closest('.taskTemplate').find('.date').html();
希望对您有所帮助。
$(document).ready(function() {
$(".taskTemplate .edit").on('click', function(event) {
editTask(event.target);
});
});
function editTask(node) {
var closest_div = $(node).closest('.taskTemplate');
var date = closest_div.find('.date').text();
var description = closest_div.find('.desc').text();
console.log(date, `|`, description);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="taskTemplate">
<span class="date">205-10-09</span>
<span class="desc">description of task</span>
<input type="button" class="edit" value="edit">
<input type="button" class="delete" value="delete">
<span class="done">done</span>
</div>
<div class="taskTemplate">
<span class="date">2015-11-19</span>
<span class="desc">description of task2</span>
<input type="button" class="edit" value="edit">
<input type="button" class="delete" value="delete">
<span class="done">done</span>
</div>
When i click the edit button, i want to get the date and description
of that div
您可以使用 .siblings()
到 select .date
、.desc
元素 .edit
的兄弟姐妹
$(document).ready(function() {
//If i click on edit button . I want to select the corresponding date and description .How can we do that?
$(".taskTemplate .edit").on('click', function(event) {
editTask($(this).siblings(".date, .desc"));
});
});
function editTask(nodes) {
var data = $.map(nodes, function(el) {
return `${el.className}: ${el.textContent}`
}).join(", ");
alert(data);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
</script>
<div class="taskTemplate">
<span class="date">205-10-09</span>
<span class="desc">description of task</span>
<input type="button" class="edit" value="edit">
<input type="button" class="delete" value="delete">
<span class="done">done</span>
</div>
<div class="taskTemplate">
<span class="date">2015-11-19</span>
<span class="desc">description of task2</span>
<input type="button" class="edit" value="edit">
<input type="button" class="delete" value="delete">
<span class="done">done</span>
</div>
我正在努力学习jQuery,我有以下标记
在 div 中,我有两个文本日期和说明以及两个编辑和删除按钮。
当我点击编辑按钮时,我想获取那个 div
的日期和描述我在这里尝试使用 parents()
选择器获取它,我如何在这里使用 closest()
选择器,如果当前标记不可能,请建议我如何继续 closest()
选择器。
$(document).ready(function() {
//If i click on edit button . I want to select the corresponding date and description .How can we do that?
$(".taskTemplate .edit").on('click', function(event) {
editTask(event.target);
});
});
function editTask(node) {
var date = $(node).parents('.taskTemplate').find('.date').html();
alert(date);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="taskTemplate">
<span class="date">205-10-09</span>
<span class="desc">description of task</span>
<input type="button" class="edit" value="edit">
<input type="button" class="delete" value="delete">
<span class="done">done</span>
</div>
<div class="taskTemplate">
<span class="date">2015-11-19</span>
<span class="desc">description of task2</span>
<input type="button" class="edit" value="edit">
<input type="button" class="delete" value="delete">
<span class="done">done</span>
</div>
只需将 parents()
替换为 closest()
in :
var date = $(node).closest('.taskTemplate').find('.date').html();
希望对您有所帮助。
$(document).ready(function() {
$(".taskTemplate .edit").on('click', function(event) {
editTask(event.target);
});
});
function editTask(node) {
var closest_div = $(node).closest('.taskTemplate');
var date = closest_div.find('.date').text();
var description = closest_div.find('.desc').text();
console.log(date, `|`, description);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="taskTemplate">
<span class="date">205-10-09</span>
<span class="desc">description of task</span>
<input type="button" class="edit" value="edit">
<input type="button" class="delete" value="delete">
<span class="done">done</span>
</div>
<div class="taskTemplate">
<span class="date">2015-11-19</span>
<span class="desc">description of task2</span>
<input type="button" class="edit" value="edit">
<input type="button" class="delete" value="delete">
<span class="done">done</span>
</div>
When i click the edit button, i want to get the date and description of that div
您可以使用 .siblings()
到 select .date
、.desc
元素 .edit
的兄弟姐妹
$(document).ready(function() {
//If i click on edit button . I want to select the corresponding date and description .How can we do that?
$(".taskTemplate .edit").on('click', function(event) {
editTask($(this).siblings(".date, .desc"));
});
});
function editTask(nodes) {
var data = $.map(nodes, function(el) {
return `${el.className}: ${el.textContent}`
}).join(", ");
alert(data);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
</script>
<div class="taskTemplate">
<span class="date">205-10-09</span>
<span class="desc">description of task</span>
<input type="button" class="edit" value="edit">
<input type="button" class="delete" value="delete">
<span class="done">done</span>
</div>
<div class="taskTemplate">
<span class="date">2015-11-19</span>
<span class="desc">description of task2</span>
<input type="button" class="edit" value="edit">
<input type="button" class="delete" value="delete">
<span class="done">done</span>
</div>