JavaScript。替换替代 [英] Javascript .Replace Alternative

查看:107
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆