2015-01-12 4 views
-2

Я использую MVC WebGrid и артефакт навигации страницы, у меня есть много адресов, которые выглядят, как, как:Как обновить большое количество ссылок на веб-странице

<a href="/SyntheticData/MasterDetail?modelIn=Exact.Web.ViewModel.MasterDetailViewModel&amp;entrystate=Templates&amp;selectedrow=5">►</a> 

мне нужно изменить entrystate = Шаблоны до entrystate = Paging.

Есть ли способ jscript, чтобы внести это изменение для всех ссылок в простой скрипт?

Соединения создаются компонентом webgrid, и у меня нет доступа к нему. Кажется, что они сформированы, потому что сетка принимает URL-адрес, который вызывает действие и использует его в качестве базового url (entrystate и modelIn являются маршрутными значениями, вызывающими действие). Я не контролирую это. Моим единственным вариантом является исправление html после его создания. Я застрял с этой хромой сеткой.

+0

«jscript way», поэтому прокрутите каждый тег «a», найдите и замените атрибут href, это очень выполнимо – atmd

+0

@KyleT в javascript? – atmd

+0

Что? он, что заменить в качестве подстроки в теге «a», href, на стороне клиента с javascript. Не редактируйте текстовый файл – atmd

ответ

0

Я надеялся на что-то simplter, но это выглядит, как он будет работать:

var links = $("a[href]"); 
for (var i = 0; i < links.length; i++) { 
    var link = links[i]; 
    var urlin = link.attributes.getNamedItem("href"); 
    var urlout = urlin.value.replace("entrystate=Templates", "entrystate=Paging"); 
    var urlout2 = urlout.replace("entrystate=Designer", "entrystate=Paging"); 
    link.setAttribute("href", urlout2); 
} 

Я закончил с использованием (ТНХ suncat100):

$('a[href*="entrystate="]').each(function() { 
     var url = $(this)[0].attributes.getNamedItem("href").value; 
     url = url.replace("entrystate=Templates", "entrystate=Paging"); 
     url = url.replace("entrystate=Designer", "entrystate=Paging"); 
     $(this)[0].setAttribute("href", url); 
    }); 
}); 
2

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

$('a[href~="/SyntheticData/MasterDetail?"]').each(function() { 
    $(this).attr('href', $(this).attr('href').replace('entrystate=Templates', 'entrystate=Paging')); 
}); 

Я использовал селектор подстановочных знаков, чтобы частично совпадал с href, чтобы он не пересекал ссылки, которые не связаны. Возможно, вам придется его отрегулировать.

oops, вы не можете использовать jquery?

+0

Это именно тот синтаксис, который я искал. Спасибо! –

+0

Я закончил тем, что использовал: –