Простой способ к быстрому выбору целый optgroup в избранном поле

Используйте свое первое расписание:

*/5 * * * * /my/script

И добавляют это к запуску Вашего сценария:

sleep 60

(Да, это - шутка)

5
задан blub 24 September 2009 в 20:14
поделиться

3 ответа

Я предлагаю использовать jQuery (или другой фреймворк) для быстрой обработки выбора DOM. Дайте каждой группе optgroup класс, чтобы ее было легче захватить.

$("optgroup.className").children().attr('selected','selected');

Если вы хотите выбрать всю группу на основе выбора группы пользователем, сделайте следующее:

$("optgroup.className").select(function(e) {
  $(this).children().attr('selected','selected');
});

** Оба примера являются непроверенным псевдокодом, но они должны работать с минимальными изменениями, если это необходимо.

Если вы не можете использовать фреймворк, вам придется самостоятельно пройти по DOM, чтобы найти optgroup и дочерние элементы. Вы можете прикрепить слушателя к элементу select , чтобы захватить выбранный элемент, а затем таким же образом перейти к дочерним элементам.

4
ответ дан 13 December 2019 в 05:38
поделиться

I'm normally against using jQuery for simple jobs like this but I can see its value here. Still, if you prefer a non-jQuery solution that will have the benefits of using no library, introducing no spurious ids or classes and running faster, here is one:

<script type="text/javascript">

function selectOptGroupOptions(optGroup, selected) {
    var options = optGroup.getElementsByTagName("option");
    for (var i = 0, len = options.length; i < len; i++) {
        options[i].selected = selected;
    }
}

function selectOptGroup(selectId, label, selected) {
    var selectElement = document.getElementById(selectId);
    var optGroups = selectElement.getElementsByTagName("optgroup");
    var i, len, optGroup;
    for (i = 0, len = optGroups.length; i < len; i++) {
        optGroup = optGroups[i];
        if (optGroup.label === label) {
            selectOptGroupOptions(optGroup, selected);
            return;
        }
    }
}

</select>

<select id="veg" multiple>
    <optgroup label="roots">
        <option>Swede</option>
        <option>Carrot</option>
        <option>Turnip</option>
    </optgroup>
    <optgroup label="leaves">
        <option>Spinach</option>
        <option>Kale</option>
    </optgroup>
</select>

<input type="button" onclick="selectOptGroup('veg', 'roots', true)" value="Select roots">

If your has an id you could do away with the selectOptGroup function and just pass the optgroup straight into selectOptGroupOptions.

4
ответ дан 13 December 2019 в 05:38
поделиться

jquery:

$('#myoptgroup option').attr('selected', true);
2
ответ дан 13 December 2019 в 05:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: