JavaScript。替换替代 [英] Javascript .Replace Alternative
本文介绍了JavaScript。替换替代的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我为eBay编写了一个模板。但是,eBay不允许.replace。下面的代码用于滚动选项卡部分。当用户将鼠标悬停在标签(a)上时,相应的div div(a)将变为可见。
一个解决方法,让代码工作,而不使用.replace?
var divs = new Array
divs.push(contentPayment);
divs.push(contentShipping);
divs.push(contentWarranty);
divs.push(contentContact);
var navs = new Array();
navs.push(nav1);
navs.push(nav2);
navs.push(nav3);
navs.push(nav4);
///////////////////////////////////////
function hasClass(element,cls){
return(''+ element.className +'').indexOf(''+ cls +'')& -1;
}
///////////////////////////////////////// ////////////////////////////////
function toggleDisplay(id){
for(var i = 0; i< divs.length; i ++){
var item = document.getElementById(divs [i]);
item.style.display ='none';
}
var target = document.getElementById(id);
target.style.display ='block';
//////////////////////////////////////////////// ////////////////////////////////////////////////// ///////
////////////////////////////付款已付款//////// //////////////////////////////////////////////// b $ b if(id ==contentPayment){
var CurrentTab = document.getElementById(nav1);
var AlreadyActive = hasClass(CurrentTab,tabActive);
if(AlreadyActive === false){
for(var i = 0; i< navs.length; i ++){
var otherTabs = document.getElementById(navs [i]) ;
otherTabs.className = otherTabs.className.replace('tabActive','');
}
CurrentTab.className + =+tabActive;
}
}
////////////////////////////////// ////////////////////////////////////////////////// ///////////
////////////////////////////运费是// // ////////////////////////////////////////////////// //
if(id ==contentShipping){
var CurrentTab = document.getElementById(nav2);
var AlreadyActive = hasClass(CurrentTab,tabActive);
if(AlreadyActive === false){
for(var i = 0; i< navs.length; i ++){
var otherTabs = document.getElementById(navs [i]) ;
otherTabs.className = otherTabs.className.replace('tabActive','');
}
CurrentTab.className + =+tabActive;
}
}
////////////////////////////////// ////////////////////////////////////////////////// /////////////////////
///////////////////////// ///保修服务// //////////////////////////////////////////// ////////////
if(id ==contentWarranty){
var CurrentTab = document.getElementById(nav3);
var AlreadyActive = hasClass(CurrentTab,tabActive);
if(AlreadyActive === false){
for(var i = 0; i< navs.length; i ++){
var otherTabs = document.getElementById(navs [i]) ;
otherTabs.className = otherTabs.className.replace('tabActive','');
}
CurrentTab.className + =+tabActive;
}
}
////////////////////////////////// ////////////////////////////////////////////////// /////////////////////
///////////////////////// ///联系人已填写////////////////////////////////////////////// // ////////////
if(id ==contentContact){
var CurrentTab = document.getElementById(nav4);
var AlreadyActive = hasClass(CurrentTab,tabActive);
if(AlreadyActive === false){
for(var i = 0; i< navs.length; i ++){
var otherTabs = document.getElementById(navs [i]) ;
otherTabs.className = otherTabs.className.replace('tabActive','');
}
CurrentTab.className + =+tabActive;
}
}
}
解决方案>
您可以尝试使用替换
函数
String.prototype.fakeReplace = function(str,newstr){
return this.split(str).join(newstr);
};
var str =Welcome javascript;
str = str.fakeReplace('javascript','');
alert(str); // Welcome
DEMO 。
I am coding a template for eBay. However, eBay does not allow .replace. The code below is for a rollover tab section.When the user hovers over tab(a), the correspodning div div(a) is made to become visible.
Is there a workaround to get the code to work without using .replace?
var divs = new Array();
divs.push("contentPayment");
divs.push("contentShipping");
divs.push("contentWarranty");
divs.push("contentContact");
var navs = new Array();
navs.push("nav1");
navs.push("nav2");
navs.push("nav3");
navs.push("nav4");
///////////////////////////////////////
function hasClass(element, cls) {
return (' ' + element.className + ' ').indexOf(' ' + cls + ' ') > -1;
}
///////////////////////////////////////////////////////////////////////
function toggleDisplay(id) {
for (var i = 0; i < divs.length; i++) {
var item = document.getElementById(divs[i]);
item.style.display = 'none';
}
var target = document.getElementById(id);
target.style.display = 'block';
///////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////PAYMENT IS HOVERED////////////////////////////////////////////////////////
if (id == "contentPayment") {
var CurrentTab = document.getElementById("nav1");
var AlreadyActive = hasClass(CurrentTab, "tabActive");
if (AlreadyActive === false) {
for (var i = 0; i < navs.length; i++) {
var otherTabs = document.getElementById(navs[i]);
otherTabs.className = otherTabs.className.replace(' tabActive', '');
}
CurrentTab.className += " " + "tabActive";
}
}
/////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////Shipping IS HOVERED////////////////////////////////////////////////////////
if (id == "contentShipping") {
var CurrentTab = document.getElementById("nav2");
var AlreadyActive = hasClass(CurrentTab, "tabActive");
if (AlreadyActive === false) {
for (var i = 0; i < navs.length; i++) {
var otherTabs = document.getElementById(navs[i]);
otherTabs.className = otherTabs.className.replace(' tabActive', '');
}
CurrentTab.className += " " + "tabActive";
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////Warranty IS HOVERED////////////////////////////////////////////////////////
if (id == "contentWarranty") {
var CurrentTab = document.getElementById("nav3");
var AlreadyActive = hasClass(CurrentTab, "tabActive");
if (AlreadyActive === false) {
for (var i = 0; i < navs.length; i++) {
var otherTabs = document.getElementById(navs[i]);
otherTabs.className = otherTabs.className.replace(' tabActive', '');
}
CurrentTab.className += " " + "tabActive";
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////Contact IS HOVERED////////////////////////////////////////////////////////
if (id == "contentContact") {
var CurrentTab = document.getElementById("nav4");
var AlreadyActive = hasClass(CurrentTab, "tabActive");
if (AlreadyActive === false) {
for (var i = 0; i < navs.length; i++) {
var otherTabs = document.getElementById(navs[i]);
otherTabs.className = otherTabs.className.replace(' tabActive', '');
}
CurrentTab.className += " " + "tabActive";
}
}
}
解决方案
You may try this as an alternative of replace
function
String.prototype.fakeReplace=function(str, newstr) {
return this.split(str).join(newstr);
};
var str="Welcome javascript";
str=str.fakeReplace('javascript', '');
alert(str); // Welcome
DEMO.
这篇关于JavaScript。替换替代的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文