私がやろうとしていて、ほとんど達成したことは、スパンでラップされたアンカータグのURLのタグパラメーターを変更することです。それはうまく機能しています。何が起こっているのかというと、最初のアンカータグhrefをプルし、すべてのアンカータグを同じhrefに置き換えています。ループを通過するときに、毎回varが新しいhrefに置き換えられると思いました。提案?
<div class="changeparam">
<span><a href="http://demo.org/post.php?i=17uh23&p=456&s=789&tag=asdf">Link</a></span>
<span><a href="http://demo.org/post.php?i=18uh23&p=456&s=789&tag=asdf">Link</a></span>
<span><a href="http://demo.org/post.php?i=19uh23&p=456&s=789&tag=asdf">Link</a></span>
<span><a href="http://demo.org/post.php?i=20uh23&p=456&s=789&tag=asdf">Link</a> </span>
<a href="www.test.com">test</a>
</div>
これが、アンカータグのタグパラメータを置き換える私のコードです。その機能は正常に機能しています。私の問題は関数displayTextNumber()にあります。見つかった最初のアンカータグを保存し、それを使用してサイト全体で他のすべてのアンカータグhrefを置き換えます。各タグを繰り返し処理したいと思います。
function replaceQueryString( queryString, keys, newValues ) {
var parts = queryString.split('&');
// We're going to make an array of querystring key=value strings
var new_parts = [];
for( i in parts ) {
var keyValue = parts[i].split('=');
// Use jQuery to see if this key is in our desired set
var replacePos = $.inArray(keyValue[0],keys);
// If it is, it will give a non-negative integer, if not it'll give -1
if( replacePos >= 0 )
// We want to replace this key so make a new string for the key/value pair
new_parts.push( keyValue[0] + '=' + newValues[replacePos] );
else {
// This isn't the key we want to replace, so leave it alone
new_parts.push( parts[i] );
}
}
// glue all the parts together and return them
return new_parts.join('&');
}
function displayTextNumber(){
if(isNotBrandedTerm()){
var NumberSpans = document.getElementsByTagName('span');
for (var i=0; i < NumberSpans.length; i++) {
// Get the full address from the original link
var old_fulladdr = $('span a').attr('href');
var old_addr_parts = old_fulladdr.split('?');
// The keys you want to replace
var tobereplaced = ['tag'];
// The respective values you want to assign
var replacements = [getPhoneNumber()];
var new_query_string = replaceQueryString( old_addr_parts[1], tobereplaced, replacements );
//var new_querystring = 'i=abc&p=def&g=ghi';
$('span a').attr('href',old_addr_parts[0] + '?' + new_query_string);
}//CLOSE IF
} //CLOSE FOR
}//close isNotBrandedTerm