Отключить содержимое тега ‹li› с помощью javascript

var inputs = document.getElementsByTagName("li");
for(var i = 0; i < inputs.length; i++)
{
    if(inputs[i].id.indexOf(startsWith) == 0) {
        eles.push(inputs[i].id);
    }
}
for(var j=0; j < eles.length; j++) {
    document.getElementById(eles[j]).setAttribute("class","jstree-checked");                
}

Я удаляю идентификаторы, начинающиеся с определенного шаблона, в тегах li моего документа.
Я изменяю класс тегов li полученных идентификаторов.
Мне также нужно отключить содержимое, присутствующее в тегах li li в целом.
Можно ли это сделать с помощью javascript или jquery?

ОБНОВЛЕНИЕ:
У меня есть флажок и текстовое сообщение внутри каждого тега <li>.
Нужно отключить флажок (не интерактивный) и отобразить текст как отключенный.

<li id="1_1" class="jstree-leaf jstree-no-icons jstree-last jstree-leaf jstree-unchecked" crawllocation="D:\company\deploy\AppServer\fusionEAR.ear" name="fusionEAR.ear">
<ins class="jstree-icon"> </ins>
<a class="" href="#" style="">
<ins class="jstree-checkbox"> </ins>
<ins class="jstree-icon "> </ins>
fusionEAR.ear
</a>
</li>

Пробовал эти:

for(var j=0; j < eles.length; j++){
//jQV6('#jstreeDivforBrowse').jstree("check_node","#"+eles[j]);
document.getElementById(eles[j]).setAttribute("class","jstree-default jstree-checked");
//$.jstree._reference('#jstreeDivforBrowse').set_type("disabled", "#"+eles[j]); -- First try to disable
//eles[j].disabled = true;-- Second try to disable
//$("#"+eles[j]).attr('disabled', 'true');-- Third try to disable
//$("#"+eles[j]).addClass("jstree-leaf jstree-no-icons jstree-last jstree-leaf jstree-checked").find(":input").attr("disabled", "disabled");-- Fourth try to disable
        }

Ни в одной из этих попыток я не смог найти отключенный флажок. Но задача установки флажка выполняется успешно для требуемых идентификаторов путем изменения имени класса внутри цикла, как указано.


person LGAP    schedule 23.01.2013    source источник
comment
Что значит отключить содержимое?   -  person Explosion Pills    schedule 23.01.2013
comment
У меня есть флажок и текстовое сообщение внутри каждого тега ‹li›. Нужно отключить флажок и отображать текст как отключенный.   -  person LGAP    schedule 23.01.2013
comment
Я не вижу флажка в вашем html   -  person Jon P    schedule 23.01.2013
comment
Это флажок, который генерируется jstree автоматически. поэтому, я полагаю, есть только имя класса.   -  person LGAP    schedule 23.01.2013
comment
Кроме того, вы можете привести пример идентификатора, который будет отключен, и тот, который не будет   -  person Jon P    schedule 23.01.2013


Ответы (2)


плагин типов можно использовать для настройки узлов в jstree.

 types: {
    "disabled": {
        "select_node": false,
        "open_node":   false,
        "close_node":  false,
        "create_node": false,
        "delete_node": false
    }
}

Обратите внимание, что мы определили Type и назвали его disabled, поэтому мы добавили атрибут rel как disabled к элементу <li>, чтобы сделать его отключенным. Вот как jsTree ищет type, используя атрибут rel.

с объявленным Type в вашем цикле просто добавьте,

document.getElementById(eles[j]).setAttribute("rel","disabled");

Я надеюсь, это поможет вам.

person Mehavel    schedule 23.01.2013
comment
что, если есть несколько дочерних элементов li? - person Cris; 23.01.2013
comment
@Cris, вы можете найти количество дочерних элементов, используя «document.getElementById (inputs [0].id).childNodes.length», и пройти, используя нотацию «[]». - person Mehavel; 23.01.2013
comment
@Cris, я тоже обновил скрипку. код jquery проверит, имеет ли он несколько элементов флажка - person Mehavel; 23.01.2013
comment
@LGAP Я только что проверил скрипку, и, похоже, она работает нормально. не могли бы вы пролить свет на случай, когда это не удалось? - person Mehavel; 29.01.2013
comment
@LGAP обновил скрипку. Не могли бы вы проверить и сообщить мне, помогает ли код? - person Mehavel; 29.01.2013
comment
Извиняюсь! Все еще не работает. проблема в том, что у меня нет полей ввода внутри моего тега <li>. Обратитесь к моему html, чтобы вы могли получить некоторую подсказку. - person LGAP; 29.01.2013
comment
@LGAP извините, я действительно не понял вашей точки зрения раньше. Я понял, что jstree на самом деле не ставит вам флажки :). проверьте эту ссылку относительно нашей темы, также они упомянули о плагине типов. взгляните на эту скрипту ссылка - person Mehavel; 29.01.2013
comment
@LGAP атрибут rel в элементе «li» должен быть установлен как «отключен». Я пробовал это, и оно работает. например, '‹li rel=disabled›'. Этот атрибут дает желаемый результат. Я тоже обновляю свой ответ. Наконец-то решение есть :) - person Mehavel; 30.01.2013
comment
Спасибо Махавел. Но я не уверен, где именно я должен разместить эти типы: по умолчанию.... вещи. Можете ли вы увидеть pastebin и дайте мне знать? - person LGAP; 31.01.2013
comment
Теперь я правильно разместил его, и он работает, как и ожидалось. Спасибо! - person LGAP; 31.01.2013

используйте $("/* li element*/").attr("disabled", "disabled");, чтобы отключить его

или $("/* li element*/").hide();, чтобы скрыть его

в твоем случае

for(var j=0; j < eles.length; j++) {
$("#"+eles[j]).addClass("jstree-checked").find(":input").attr("disabled", "disabled");

}
person Cris    schedule 23.01.2013
comment
можете ли вы дать мне точную строку, которая будет работать при просмотре моего кода. Я не знаю о jquery. - person LGAP; 23.01.2013
comment
какой тип элементов вы хотите отключить? т.е. ввод, выбор и т. д. - person Cris; 23.01.2013
comment
@Cris рад, что ты не знаешь о jquery :) - person Mehavel; 23.01.2013