Привет, пожалуйста, скажите мне, как получить весь идентификатор в ряду братьев и сестер. Я получил длину брата. Теперь как получить идентификатор этого в массиве. ,
На рис., Если у пользователя 3 ребенка. Если щелчок "Первый уровень" показывает "3", если пользователь нажимает menu_tc_1
он показывает 0
.. или то же самое в menu_tc_2
, menu_tc_3
. как получить идентификаторы родного брата в массиве. Я стараюсь, но не получаю id
$(document).on('click'," ul li > a",function(e){
//alert($(this).siblings().length);
//first method..
console.log($(this).siblings().length);
/*var id=$(this).parent().attr("id") || $(this).parents("ul").attr("id");
console.log(id);*/
var selEl = [];
$(this).siblings().each(function (idx, el) {
selEl.push('#' + el.id);
});
console.log(selEl)
// alert(id);
// getViewFromPanel();
})
Попробуй это,
var arr=$(this).siblings().map(function () {
return '#' + this.id;
}).get();
console.log(arr);
Обновлено в соответствии с вашим сценарием нет siblings of a
попробовать это,
var selEl = [];
$(this).closest('ul').find('li').each(function (idx, el) {
// -----^ using closest and find, as there are no siblings of a
selEl.push('#' + el.id);
});
console.log(selEl);
Также, если вы хотите использовать siblings
используйте событие click на li, а не на теге привязки, например,
$(document).on('click', " ul li", function (e) {
// use click event on li not on anchor tag
//alert($(this).siblings().length);
......
var selEl = [];
$(this).siblings().each(function (idx, el) {
selEl.push('#' + el.id);
});
console.log(selEl);
.....
});
Использовать .attr()
var id=0;
$(this).siblings().each(function (idx, el) {
id=el.attr('id');
selEl.push('#' + id);
});
Используйте .map() и свойство id
var selEl = $(this).parent().siblings().map(function (idx, el) {
return this.id
}).get();
Демо: скрипка