2010-09-29 2 views
1

У меня есть блок кода:JQuery - выполнить блок кода в одной строке

   $('#link_dwebsitedesign a').removeClass('selected'); 
      $('#link_dhuisstijl a').removeClass('selected'); 
      $('#link_dhosting a').removeClass('selected'); 
      $('#link_dwordpress a').removeClass('selected'); 
      $('#link_dseo a').removeClass('selected'); 
      $('#link_dcms a').removeClass('selected'); 
      $('#link_dslicen a').removeClass('selected'); 
      $('#link_dwebshop a').removeClass('selected'); 

И это должно быть выполнено несколько раз в моем сценарии.

Нет ли селектора или чего-то еще, поэтому я могу выполнить этот блок кода в одной строке?

Пример: $('blockofcode').execute();

+0

В зависимости от ваш HTML и все, '$ ('a'). removeClass ('selected')' может быть достаточным. –

ответ

3

Вы можете обернуть код в функции:

 function mycode(){ 
     $('#link_dwebsitedesign a').removeClass('selected'); 
     $('#link_dhuisstijl a').removeClass('selected'); 
     $('#link_dhosting a').removeClass('selected'); 
     $('#link_dwordpress a').removeClass('selected'); 
     $('#link_dseo a').removeClass('selected'); 
     $('#link_dcms a').removeClass('selected'); 
     $('#link_dslicen a').removeClass('selected'); 
     $('#link_dwebshop a').removeClass('selected'); 
    } 

И называть вашу функцию, где вы хотите:

mycode(); 

Смотрите Javascript Functions учебник для получения дополнительной информации.

+0

Thnx! Оно работает. – basm

+0

@basm: Добро пожаловать :) – Sarfraz

0

положить его в функцию, а затем вызовите функцию вместо этого.

1

Создать небольшой плагин, который делает это для вас, так как вы, кажется, делают это все время:

(function($) { 
    $.fn.removeSelected = function() { 
    return $(this).each(function() { 
     $('a', this).removeClass('selected'); 
    }); 
    }); 
})(jQuery); 

Затем пройти jQuery массив селекторов, чтобы удалить класс ...

var links_array = ['#link_dwebsitedesign', '#link_dhuisstijl', '#link_dhuisstijl', '#link_dwordpress', '#link_dseo', '#link_dcms', '#link_dslicen', '#link_dwebshop']; 

function removeLinks(links) { 
    $(links.join(', ')).removeSelected(); 
} 
removeLinks(links_array); 

И вуаля!

2

Я мог бы предложить это может быть сокращено:

$('#link_dwebsitedesign a, #link_dhuisstijl a, #link_dhosting a, #link_dwordpress a, #link_dseo a,#link_dcms a, #link_dslicen a, #link_dwebshop a').toggleClass('selected'); 

, который делает то же самое. Можно положить, что в функции следующим образом:

function jQuery_ToggleSelected() 
{ 
    $('#link_dwebsitedesign a, #link_dhuisstijl a, #link_dhosting a, #link_dwordpress a, #link_dseo a,#link_dcms a, #link_dslicen a, #link_dwebshop a').toggleClass('selected');  
} 

И просто называется jQuery_ToggleSelected() добавить/удалить нужный стиль для этих элементов.

0

Я отдал бы все те #link_dwebsitedesign, #link_dhuisstijl и т.д. элементы общего класса, например class="link", а затем просто использовать .class selector как это:

$(".link a").removeClass("selected"); 

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

0
$('#link_dwebsitedesign a , #link_dhuisstijl a, #link_dhosting a, #link_dwordpress a, #link_dseo a, #link_dcms a, #link_dslicen a, #link_dwebshop a').removeClass('selected'); 

Или положить его в функции

1

Вы можете использовать класс, который является одинаковым для всех и называем

$('.link a').removeClass('selected'); 

Или, если вы знаете, какой элемент вы вызываете вы можете удалить все те, с идентификаторами, начиная с линии (с помощью дел):

$('div[id^=link_] a').removeClass('selected'); 

Или называть все из функции

function removeLinkSelects(){ 
    $('#link_dwebsitedesign a').removeClass('selected'); 
    $('#link_dhuisstijl a').removeClass('selected'); 
    $('#link_dhosting a').removeClass('selected'); 
    $('#link_dwordpress a').removeClass('selected'); 
    $('#link_dseo a').removeClass('selected'); 
    $('#link_dcms a').removeClass('selected'); 
    $('#link_dslicen a').removeClass('selected'); 
    $('#link_dwebshop a').removeClass('selected'); 
} 
removeLinkSelects(); 

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

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