我是javascript的初学者,如果您发现它有点奇怪或容易,我会提前为我的问题道歉。
以下是我的问题:
var category = ["orange","lemon","apple","banana"];
var myUrl = "www.website.com/products/15/lemon/image1.png";
当我的用户点击图片时,我会得到一个新的水果值,例如字符串“apple”。
var changeCategory = "apple";
检查我的某个水果的单词是否在url中并用新值替换它的更有效方法是什么...或者如果新值实际上在myUrl变量中什么也不做?
答案 0 :(得分:0)
数组检查,如果元素存在
var category = ["Banana", "Orange", "Apple", "Mango"];
var changeCategory = category.indexOf("Apple");
<强>输出强>
2
**如果找不到元素,return -1
。
解析网址
var url = window.location.href;
解析当前网址
//返回一个数组[&#34; www.website.com&#34;,&#34; products&#34;,&#34; 15&#34;,&#34; lemon&#34;,& #34; image1.png&#34;]
var urlArray = url .split( '/' );
var currentFruit = urlArray[3]; // getting current fruit from url
urlArray[3] = "";
//用双引号传递新的fruitName
//现在迭代数组以形成url。
var arrayLength = urlArray.length;
Var newUrl;
for (var i = 0; i < arrayLength; i++) {
if(i < arrayLength-1){
newUrl = newUrl+ urlArray[i]+ "/";
}else{
newUrl = newUrl+ urlArray[i];
}
}
现在你有了网址,只是做了
window.location.href = newUrl; // redirect page to new url now.
答案 1 :(得分:0)
请参阅以下代码。我们的想法是采用每个category
元素并使用myUrl
在indexOf()
中查找它。如果indexOf()
返回-1以外的内容,则会找到该单词,您可以使用changeCategory
替换为replace()
的值。
var category = ["orange", "lemon", "apple", "banana"];
var myUrl = "www.website.com/products/15/lemon/image1.png";
var changeCategory = "apple";
for (var i = 0; i < category.length; ++i) { // Consider each category word.
if (myUrl.indexOf(category[i]) >= 0) { // Is it in myUrl?
myUrl = myUrl.replace(category[i], changeCategory);
break; // If so, replace it and stop
} // looking at the remaining
} // words.
document.write(myUrl); // Test the result.
答案 2 :(得分:0)
当然,有许多方法可以给猫皮肤。您可以使用简单的正则表达式来构建新URL,如果它与旧URL不同,请使用它。否则,什么也不做,例如
var oldURL = 'www.website.com/products/15/lemon/image1.png';
var categories = /orange|lemon|apple|banana/;
var newCategory = 'apple'
var newURL = oldURL.replace(categories, newCategory);
if (newURL != oldURL) {
// go to newURL
}
如果 categories 中的某个水果位于网址中且替换水果与已经存在的水果不同,则只会创建一个新网址。
答案 3 :(得分:0)
您可以将类别设为正则表达式。
var changeUrlCategory = function( url, newCat ) {
var cats = /(orange|lemon|apple|banana)/i;
return url.replace( cats, newCat );
};
var newUrl = changeUrlCategory( existingUrl, 'grape');