2015-02-17 1 views
1

enter image description hereJQuery, как удалить элемент на основе Contect суб-элемента

Я пытаюсь написать JQuery, чтобы удалить все подразделения с классом item ui-draggable... на основе значения выделенного элемента. Например, проверьте, если значение меньше 100, и если true, удалите деление. Я понятия не имею, как это сделать. Структура всех подразделений одинакова. Соответствующее число всегда будет содержаться в 6-ом подэлементе деления, подлежащего удалению.

так в псевдо-код, который я хочу, чтобы написать это:

$(document).ready(function(){ 
    for each division of class .item ui-draggable... { 
     if (value of relevant number < 100) { 
      .remove(division); 
     } 
    } 
}); 
+0

Если вы хотите, чтобы изучить основы JQuery, я могу предложить следующие сайты: [JQuery документы] (http://api.jquery.com/), [CodeAcademy] (http://www.codecademy.com/), [Tuts +] (http://tutsplus.com/), [KhanAcademy] (https://www.khanacademy.org/computing/computer-programming), [Список ресурсов] (http://zachsaucier.com/blog/resources.html), [Mozilla Docs] (https://developer.mozilla.org/en -US/docs/Web) –

ответ

1

Попробуйте это:

$(document).ready(function(){ 
    $('.item.ui-draggable').each(function(){ 
     var val = parseInt($(this).find('.socialMetaCount').text(),10); 
     if (val < 100) { 
      $(this).remove(); 
     } 
    }) 
}); 
+0

Это было более просто для меня, чтобы понять. И он отлично работает! :) – user2651804

+0

@ user2651804 рад помочь U, это более просто, но если у вас есть время позже, хорошо проверьте ответ от Дэвида. Использование фильтра() может быть полезным в будущем. – DaniP

0

Таким образом, в код, который вы хотели, чтобы написать это

$(document).ready(function(){ 
    $(".item ui-draggable").each(function(){ 
     if (anyNumber< 100 && somethingTrue) { 
      $(this).remove(); 
     } 
    } 
}); 
5

Сначала выберите элементы, которые вы хотите оценить, а затем, если эти элементы соответствуют критериям, перейдите к соответствующему элементу с помощью closest() o г parents(), и удалить эти:

$('em.socialMetaCount').filter(function(){ 
    return parseInt(this.textContent.trim(), 10) < 100; 
}).closest('.item.ui-draggable').remove(); 

Литература:

+1

Приятно, что это кажется более эффективным и быстрым ... +1 – DaniP

0

Я думаю, что то, что вы ищете что-то вроде этого:

$(document).ready(function() { 
    $(".ui-draggable").each(function() { 
     if (parseInt($(this).find('.socialMetaCount').text()) < 100) { 
      $(this).remove(); 
     } 
    }); 
}); 
+2

У 'em' нет свойства' value' (поэтому он не может использовать метод 'val()'), вам нужно будет использовать 'text()' вместо. Тогда полученный текст будет строкой (а не числом), поэтому сравнение, скорее всего, не будет работать (как и ожидалось). –

+0

Спасибо, Дэвид, я обновил решение с вашего комментария. Хотя я думаю, что решение, которое вы предлагаете, лучше, чем мое для этой задачи. – fray88

Смежные вопросы