Вот возможный путь, использование находят. Я не полностью протестировал его, таким образом, пользователь остерегается...
depth=0
output=$(find . -mindepth $depth -maxdepth $depth -type d | sort);
until [[ ${#output} -eq 0 ]]; do
echo "$output"
let depth=$depth+1
output=$(find . -mindepth $depth -maxdepth $depth -type d | sort)
done
$('div.band div.member');
даст вам объект jQuery, содержащий Объект jQuery представляет собой объект, подобный массиву, в котором каждому совпадающему элементу присваивается числовое свойство (например, индекс) объекта, а также определяется свойство или . Вместо выбора всех элементов вы можете указать, чтобы выбрать конкретный элемент в соответствии с положением в DOM. Например, или РЕДАКТИРОВАТЬ: Вот плагин, который я только что выбил Вот Рабочая демонстрация . добавьте / edit к URL-адресу, чтобы увидеть код. Если вам нужны какие-либо подробности о том, как это работает, оставьте комментарий. Вероятно, это могло бы быть связано с тем, чтобы сделать его более надежным для обработки определенных ситуаций (например, если есть другие дочерние элементы объекта jQuery, к которому подключается плагин), но это будет соответствовать вашим потребностям. Код из демонстрации HTML
, которые являются потомками div с диапазоном class
.
length
. Чтобы получить один элемент, это // first element
$('div.band div.member')[0];
// first element
$('div.band div.member').get(0);
// get the first div with class member element
$("div.band div.member:eq(0)")
// get the first div with class member element
$("div.band div.member:nth-child(1)")
(function($) {
$.fn.randomize = function(childElem) {
return this.each(function() {
var $this = $(this);
var elems = $this.children(childElem);
elems.sort(function() { return (Math.round(Math.random())-0.5); });
$this.detach(childElem);
for(var i=0; i < elems.length; i++)
$this.append(elems[i]);
});
}
})(jQuery);
$(function() {
$('button').click(function() {
$("div.band").randomize("div.member");
});
});
(function($) {
$.fn.randomize = function(childElem) {
return this.each(function() {
var $this = $(this);
var elems = $this.children(childElem);
elems.sort(function() { return (Math.round(Math.random())-0.5); });
$this.remove(childElem);
for(var i=0; i < elems.length; i++)
$this.append(elems[i]);
});
}
})(jQuery);
<div class="band">
<div class="member">
<ul>
<li>John</li>
<li>Lennon</li>
</ul>
</div>
<div class="member">
<ul>
<li>Paul</li>
<li>McCartney</li>
</ul>
</div>
<div class="member">
<ul>
<li>George</li>
<li>Harrison</li>
</ul>
</div>
<div class="member">
<ul>
<li>Ringo</li>
<li>Starr</li>
</ul>
</div>
</div>
<button>Randomize</button>