Jquery:前缀使用.load检索的内容

时间:2014-04-24 07:54:40

标签: javascript jquery html svg

我正在使用jquery通过ajax加载一个svg,如下所示:

$("body").load("https://upload.wikimedia.org/wikipedia/commons/0/02/SVG_logo.svg");

加载得很好,但替换了正文中的所有内容。我想要它做的是添加加载的svg,所以svg不会替换所有内容,而是作为<body>之后的第一个元素插入。

4 个答案:

答案 0 :(得分:1)

使用$ .get()然后在回调中添加前缀:

$.get( "https://upload.wikimedia.org/wikipedia/commons/0/02/SVG_logo.svg" )
  .done(function( data ) {
      $("body").prepend($(data).find("svg"));
  });

答案 1 :(得分:1)

嗯,你不能只是将检索到的图像放入体内。 如果要显示图像,只需通过img标签显示即可。 如果您检索数据,则可以使用以下内容:

$.get("https://upload.wikimedia.org/wikipedia/commons/0/02/SVG_logo.svg" )
  .success(function(data) {
      $("body").prepend(data.activeElement.innerHTML);
  });

您的初始变体&#34;工作的原因&#34;通过显示整个图片,浏览器可以显示图像文件,而您的代码就是这样 - 如果您只是将图像拖放到浏览器窗口中,就会一样。

答案 2 :(得分:0)

尝试以下代码我检查并正常工作。

$("#svg").load("https://upload.wikimedia.org/wikipedia/commons/0/02/SVG_logo.svg");

答案 3 :(得分:0)

试试这个:

$.ajax({
  url:"https://upload.wikimedia.org/wikipedia/commons/0/02/SVG_logo.svg",
  method: "GET",
  dataType: "html",
  success: function(data) {
    $("body").prepend(data);
  }
})

如果您想获得不同的内容(例如xml / json元素),则必须调整数据类型。

适用于您的示例 - svg位于正文下方和#svg div之前。