سؤال

الرمز أدناه يعمل بشكل جيد. ولكن إذا قمت بتغيير سلسلة HTML في Newpara () <textarea></textarea><button id="someId">Save</button> أو <textarea></textarea><input type="button" value="Save"/> انها لا تعمل. ما هي المشكلة في هذا؟

أحتاج إلى سمة المعرف هذه لإزالة HTML المرفقة حديثًا.

أي اقتراحات!

شكرًا!

<html>
  <head>
    <style>
      p { background:yellow; font-weight:bold; cursor:pointer; padding:5px; }
      p.over { background: #ccc; }
      span { color:red; }
    </style>
    <script src="http://code.jquery.com/jquery-latest.min.js"></script>
  </head>
  <body>
    <div id="aDiv">
      <p>Click me!</p>
    </div>

    <span></span>
    <script>
      $("body").delegate("p", "click", newPara);
      $("body").undelegate("button", "click", newPara).find("#adiv").html("<p>Click me!</p>");
      function newPara() {
        var html = "<textarea></textarea><button>Save</button>";
        $(this).after(html);
      }
    </script>
  </body>
</html>
هل كانت مفيدة؟

المحلول

سيكون تخميني الوحيد هو أنك تستخدم عروض أسعار مزدوجة لإنشاء سلسلة حرفية ، ولكن أيضًا تستخدمها داخل السلسلة ، وبالتالي إنهاءها مبكرًا.

إذا كان الأمر كذلك ، هذا:

"<textarea></textarea><button id="someId">Save</button>"

يجب ان يكون:

'<textarea></textarea><button id="someId">Save</button>'

لاحظ أنني استخدمت اقتباسات واحدة من الخارج ، بحيث لا تغلق الخيط الداخلي.

حاول: http://jsfiddle.net/qqrhr/

يستخدم المثال الكود الدقيق الخاص بك. كان التغيير الوحيد الذي أجريته هو استخدام اقتباسات Singe حول السلسلة.

يمكنك أيضًا الهروب من الاقتباسات الداخلية إذا أردت:

"<textarea></textarea><button id=\"someId\">Save</button>"

نصائح أخرى

هل تبحث عن إلحاق بدلاً من بعد؟ او حتى http://api.jquery.com/insertafter/ ?

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