What am I doing wrong?
- Only on pages with the URL location of "/MyWebsite/Example.aspx" append "?template=PW"
- But only to links that contain "/HelloWorld/default.aspx"
There is no ID or classes associated to this link, so I have to look for the URL.
This is my code, but the links are not updating.. I know I'm close!
$(document).ready(function(){
if (document.location.href.indexOf('/MyWebsite/Example.aspx') > 0)
{
$('a[href*="/HelloWorld/default.aspx"]').append("href",$("?template=PW"))
}
});
5 Answers 5
$(document).ready(function(){
if (document.location.href.indexOf('/MyWebsite/Example.aspx') > 0)
{
var $el = $('a[href*="/HelloWorld/default.aspx"]');
$el.attr("href", $el.attr("href")+ "?template=PW");
}
});
3 Comments
$("a").each(function() { $(this).attr("href", $(this).attr("href")+ "?template=PW"); });
This would definitely solve your problem as it did mine.
<script type="text/javascript">
var querystring = 'MyString'; // Replace this
$('a').each(function(){
var href = $(this).attr('href');
href += (href.match(/\?/) ? '&' : '?') + querystring;
$(this).attr('href', href);
});
</script>
Comments
Use $.attr() to edit an attribute.
$.append() is used to insert an html child node inside your element.
$(document).ready(function(){
if (document.location.href.indexOf('/MyWebsite/Example.aspx') > 0)
{
var href = '/HelloWorld/default.aspx';
$('a[href*="' + href + '"]').attr("href", href + "?template=PW")
}
});
Comments
Have you consider using PURL? With PURL I was able to do this:
var url = "http://localhost/some/url?item1=one&item2=two";
if ($.url(url).attr('query')) {
url = url + '&newItem=new';
}
else {
url = url + '?newItem=new';
}
Comments
Replace
$('a[href*="/HelloWorld/default.aspx"]').append("href",$("?template=PW"))
With
$.each(
$('a[href*="/HelloWorld/default.aspx"]'),
function(index, value) {
$(value).attr('href', $(value).attr('href') + '?template=PW');
}
);
That will get you started, but you should also check to make sure there isn't a query string parameter already in the matched URL.
$().append()
doesn't alter the value of the href attribute, it is used to insert content at the end of each matched element. The jQuery documentation has examples of how to use $().append()
.