سؤال

لدي هذا أتش تي أم أل.

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

كيف يمكنني إخفاء أحد هذه الروابط باستخدام خاصية href والأرقام الأخيرة فقط (233253) لإخفاء الرابط الذي يحمل سمة href هذه و"رابط" الفئة؟

هذا ليس كود عمل، إنه مجرد شيء قمت بتجميعه لشرحه بشكل أفضل.getElementsByTagName('a').class('link').href = "*233253"

تحديث:لسوء الحظ، يجب أن يكون جافا سكريبت خالصًا، ولا يستخدم مكتبة، ويجب أن يعمل على IE6.

التحديث2:ليس لدي حق الوصول إلى HTML

هل كانت مفيدة؟

المحلول

<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>

تعديل : في I نشر نسخة جديدة بعد قراءة تعليقك حول التغليف وظائف داخل وظيفة. يجب أن تعمل هذا واحد فقط، وكذلك الإصدار السابق.

نصائح أخرى

وعن طريق مسج:

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

والسمة = محدد $ مباريات جميع العناصر حيث تنتهي هذه السمة المحددة مع قيمة معينة.

[يحرر]:كان الكود قذرًا إلى حد ما، ويجب أن يعمل الآن.بما في ذلك طريقة التقسيم (انظر التعليقات).

قم بالمرور عبر العناصر، وتحقق من href وقم بتطبيق الإخفاء.مثله:

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';
       }
}

أو

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';
   }
}

وأي جريمة ولكن خلق الحلقات يبدو وكأنه الحل بالنسبة لي. إذا كنت يمكن أن تضيف فريدة من نوعها لمعرف إلى الروابط التي سيكون من الواضح أن الأسلوب المفضل.

وبعد ذلك يمكنك استخدام "getElementById" لتحديد فئة مختلفة لإخفاء رابط معين.

وما يميز وصلة واحدة من آخر؟ إذا كنت تعرف أن على جانب الملقم ثم إضافة classnames مناسبة والتي سوف تكون مخفية، بطريقة ثابتة، من CSS.

وتحديد حيوي ما يحتاج الاختباء سوف تتطلب منك لتوليد حيوي المتكررة جافا سكريبت الخاصة بك، إلا إذا كنت جعل هذا داخل HTML.

<القوي> تحديث:. إذا لم يكن لديك الوصول إلى HTML ولدت بعد ذلك منصبي لا تساعدك

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top