найти в jquery, применяя CSS для всего диапазона - PullRequest
2 голосов
/ 01 декабря 2010

я делаю дерево с помощью js и jquery в asp.net mvc.

есть кнопка добавления, которая добавляет дочернего элемента и потомка того же уровня.

чтобы определить, что должно быть сделано, я использую следующий код.

    //to check from where the function is called
     var checkClass = $('#UlPrnt').find('span').css('background-color', 'Lime').length;
        if (checkClass == 0) {
            AddSiblings();
        $('#hdnChkSibbling').val('2');
        }
        else {
            debugger         
            var getValue = $('#dvTree').find('span').css('background-color', 'Lime');
            var spnID = getValue[1].id;
            var check = spnID.indexOf("spn");
            if (check>0) {
                AddSiblings();
                $('#'+spnID).css('background-color', '');
            }
            else {
                //call the function to append the same level child
            }

        }

когда я проходил через функцию поиска в jquery, я интерпретировал, что она будет возвращать no dom, где соответствующий цвет bg - lime.

но то, что он делает, применяет bgcolor ко всему диапазону.

как получить идентификаторы промежутка, чей bgcolor - lime.

каждая вещь создается динамически (span, div), которую просто нужно добавить для получения лучшей картинки.

Ответы [ 3 ]

6 голосов
/ 01 декабря 2010

Вы используете метод jQuery .css () неправильно. Вы используете .css (), чтобы получить или установить свойство css. Для получения более подробной информации см .: http://api.jquery.com/css/.

Вместо использования css вы должны добавить класс ко всем элементам, которые вы хотите, чтобы они были липового цвета:

$('???').addClass('lime-colored');

Затем в вашем файле CSS укажите стиль для класса извести:

.lime-colored { background-color:lime; }

Затем, когда вы хотите захватить все элементы, которые в данный момент зеленые, сделайте это, захватив элементы, к которым добавлен класс извести:

var checkClass = $('#UlPrnt').find('span.lime-colored').length;

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

$('???').removeClass('lime-colored');
0 голосов
/ 01 декабря 2010
var ids = $('#UlPrnt span')
 //a set of spans with background-color of lime
 .filter(function(){
  return $(this).css('background-color')=='lime';
 })
 //a set of ids
 .map(function(){ return this.id; });
0 голосов
/ 01 декабря 2010

Вы должны пройтись по каждой из них, а затем найти атрибут lime.Вот пример: jQuery: вы можете выбрать по правилу CSS, а не по классу?

Другой подход, однако, заключается в добавлении класса (например, background-lime) при изменении фона наЛайм.Затем просто найдите этот класс, $. (". Background-lime").

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...