Vra

Ek het hierdie html.

<a class="link" href="www.website.com?id=233253">test1</a>
<a class="link" href="www.website.com?id=456456">test2</a>

Hoe kan ek wegsteek een van hierdie skakels met behulp van die href kenmerk, en net die laaste nommers (233253), om die skakel met hierdie href kenmerk en die klas "skakel"?

verberg

Dit is nie 'n werkende kode, net iets wat ek saam om dit beter te verduidelik. getElementsByTagName ( 'n "). klas ( 'link'). href =" * 233253 "

Update: Ongelukkig het dit aan suiwer JavaScript, nie met behulp van 'n biblioteek wees, en dit moet werk op IE6.

update2: Ek het nie toegang tot die html hê

Was dit nuttig?

Oplossing

<html>
<head>
<script type="text/javascript">

function hideLinks(className, ids) {
    var links = document.getElementsByTagName("a");
    var max   = links.length;

    for (var i=0; i<max; i++) {
        var link   = new RegExp("(\s*)"+ className +"(\s*)");
        var isLink = link.test(links[i].className);

        if (isLink) {
            for (var j=0; j<ids.length; j++) {
                var regexp = new RegExp(ids[j] + "$");
                var hasId  = regexp.test(links[i].href);

                if (hasId) {
                    links[i].style.display = "none";
                }
            }
        }
    }
}

window.onload = function() {
    hideLinks("link", [233253]);
}
</script>
</head>
<body>

<a class="link" href="www.website.com?id=233253">test1</a>
<a class="link" href="www.website.com?id=456456">test2</a>


</body>
</html>

Edit : Ek gepos word 'n nuwe weergawe na die lees van jou opmerking oor vat die funksies binne 'n funksie. Dit moet 'n mens net so goed werk as die vorige weergawe.

Ander wenke

Die gebruik van jQuery:

$("a.link[href$='233253']").hide();

Die $ = kenmerk selector wedstryde al die elemente waar die gekose kenmerk eindig met die gegewe waarde.

[ wysig ]:-kode was ietwat slordig, moet nou werk. Insluitend die split metode (sien kommentaar).

Loop deur die 'n elemente, kyk href en die pak slae toe te pas. Soos volg:

var refs = document.getElementsByTagName('a');
for (var i=0;i<refs.length;i++) {
       if (
             refs[i].href &&
             refs[i].href.replace(/(\d+$)/,'$1').match('[your value to match]')
          ) {
           refs[i].className = refs[i].className.replace(/link/i,'');
           refs[i].style.display = 'none';
       }
}

OR

for (var i=0;i<refs.length;i++) {
   var hs = refs[i].href.split(/=/)[1];
   if (  hs.match([your value to match]) ) {
       refs[i].className = refs[i].className.replace(/link/i,'');
       refs[i].style.display = 'none';
   }
}

Geen misdryf, maar die skep van loops lyk soos 'n tydelike oplossing vir my. As jy n unieke ID's kan bydra tot die skakels wat natuurlik die voorkeur-metode sou wees.

Na wat jy kan 'getElementById' gebruik om 'n ander klas stel om die spesifieke skakel verberg.

Wat onderskei 'n skakel vanaf 'n ander? As jy weet wat op die bediener kant en voeg dan toepaslike classnames en wat sal weggesteek word, in 'n statiese manier, van die CSS.

Dinamies die bepaling van wat nodig wegkruip jy sal benodig om dinamiese genereer jou JavaScript-uit, tensy jy dit lewer binne die HTML.

Update:. As jy nie toegang tot die gegenereerde HTML dan my post nie help

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top