مالمشكلة في هذا الكود جيكوري ؟؟!

أردت انشاء كود يقوم باستبدال الساب دومين للروابط في الصفحة بشكل عشوائي

وكتبت هذه الاكواد

https://jsfiddle.net/uy5140sr

لكنها لم تعمل عندي

من فضلكم أين المشكلة

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

التعليقات

$(document).ready(function() {

  var sub = new Array("subdomain2", "subdomain3", "subdomain4", "subdomain");
  var rndIndex = Math.floor(Math.random() * sub.length);
  var rndSub = sub[rndIndex];

  $(".post-body a" ).each(function() {
    var $a = $(this);
    var href = $a.attr("href"), newHref;
    try {
      var url = new URL(href);
      var splits = url.host.split(".");
      if (splits.length <= 1) throw "";
      if (splits.length === 2) splits.unshift(rndSub);
      else splits[0] = rndSub;
      url.host = splits.join(".");
      newHref = url.href;
    } catch (err) {
      newHref = href;
    }
    $a.attr("href", newHref);
  });

});

وإذا أردت وضع subdomain مختلف لكل رابط في الصفحة يجب نقل rndIndex و rndSub إلى داخل حلقة التكرار

$(document).ready(function() {


  var sub = new Array("subdomain2", "subdomain3", "subdomain4", "subdomain");

  $(".post-body a" ).each(function() {
    var rndIndex = Math.floor(Math.random() * sub.length);
    var rndSub = sub[rndIndex];

    var $a = $(this);
    var href = $a.attr("href"), newHref;
    try {
      var url = new URL(href);
      var splits = url.host.split(".");
      if (splits.length <= 1) throw "";
      if (splits.length === 2) splits.unshift(rndSub);
      else splits[0] = rndSub;
      url.host = splits.join(".");
      newHref = url.href;
    } catch (err) {
      newHref = href;
    }
    $a.attr("href", newHref);
  });

});

شكرا لك اخ @zakariamouhid‍ 

ربما لم تفهم قصدي ، أنا لدي روابط بهذا الشكل

<div class="post-body">
<a href="

http://subdomain.blogspot.c... ">الرابط الرابط الرابط الرابط الرابط الرابط

أريد تبديل الروابط التي تبدأ ب "subdomain" فقط ، أي تبديل هذا الساب دومين ب احدى القيم الموجودة في sub بشكل عشوائي ليكون مثلا

$(document).ready(function() {

  var sub = new Array("subdomain2", "subdomain3", "subdomain4", "subdomain");

  $(".post-body a" ).each(function() {
    var rndIndex = Math.floor(Math.random() * sub.length);
    var rndSub = sub[rndIndex];

    var $a = $(this);
    var href = $a.attr("href"), newHref;
    try {
      var url = new URL(href);
      var splits = url.host.split(".");
      if (splits.length <= 2) throw "";
      else if (splits[0] === "subdomain") splits[0] = rndSub;
      url.host = splits.join(".");
      newHref = url.href;
    } catch (err) {
      newHref = href;
    }
    $a.attr("href", newHref);
  });

});

لا اعرف بالضبط مالذى تريد القيام به لإيجاد افضل طريقة ،هل تريد البحث عن كلمة معينة ام نمط معين ومالذى قصدته من الكلمة "drshorts"، على كل قمت بتصحيح الكود ليشتغل :

بهذذه الطريقه تستطيع تغيير الكلمه عشوائيا مع كل رابط هو نفس الكود الخاص بك لكن مع بعض التغيرات

$(document).ready(function() {

var sub = new Array("subdomain2", "subdomain3", "subdomain4", "subdomain");

/* $('.post-body').html(randno) */;

$(".post-body a" ).each(function() {

var randno = sub[Math.floor(Math.random()*(sub.length))];

var b = $(this).attr('href').replace('subdomain', randno)

$(this).attr('href', b);

});});

وهذا يغير الكلمه عشوائيا مع كل الروابط في كل مره يتم عمل reload للصفحه

$(document).ready(function() {

var sub = new Array("subdomain2", "subdomain3", "subdomain4", "subdomain");

/* $('.post-body').html(randno) */;
var randno = sub[Math.floor(Math.random()*(sub.length))];



$(".post-body a" ).each(function() {


var b = $(this).attr('href').replace('subdomain', randno)

$(this).attr('href', b);

});});