简体   繁体   English

如何在循环中每次附加带有新ID的新超链接?

[英]how to append a new hyperlink with a new id each time in a loop?

It's my second day on this project :\\ 这是我第二天做这个项目:\\

I'm trying to create is : creating a new <a> element with a new href and id attributes in for loop so that I can get each output of the API as a link. 我试图创建的是:在for循环中使用新的hrefid属性创建一个新的<a>元素,以便可以将API的每个输出作为链接。

This is my JS Code 这是我的JS代码

var one;
var two;
var hoba;

$(document).ready(function() {
  $("#inp").keyup(function() {
    hoba = $(this).val();
  });

  $("#but").on("click", function() {
    var app = "https://en.wikipedia.org/w/api.php?action=query&format=json&prop=revisions&list=search&titles=Main+Page&rvprop=content&origin=*&srsearch=" + hoba;

    $.getJSON(app, function(data) {
      for (i = 0; i < data.query.search.length; i++) {
        console.log(app);
        one = $("<a></a>").text(data.query.search[i].title);

        //var _href = $("a").attr("href");
        $("a").attr("href", 'https://www.wikipedia.org/wiki/' + data.query.search[i].title);
        $("a").attr("id", data.query.search[i].title);

        two = document.createElement("p");
        two.innerHTML = data.query.search[i].snippet;
        $("body").append(one, two);
      }
    });
  });
});

Use same object to set attributes 使用同一对象设置属性

one = $("<a></a>");
one.text(data.query.search[i].title);
one.attr("href", 'https://www.wikipedia.org/wiki/' + data.query.search[i].title);
one.attr("id", data.query.search[i].title); 

Use jQuery( html, attributes ) to create HTML element. 使用jQuery( html, attributes )创建HTML元素。

var anchor = $("<a></a>", {
    "text": data.query.search[i].title,
    "href": 'https://www.wikipedia.org/wiki/' + data.query.search[i].title,
    "id": data.query.search[i].title
});

$("body").append(anchor);

 $(document).ready(function() { $("#inp").keyup(function() { hoba = $(this).val(); }); $("#but").on("click", function() { var app = "https://en.wikipedia.org/w/api.php?action=query&format=json&prop=revisions&list=search&titles=Main+Page&rvprop=content&origin=*&srsearch=" + hoba; $.getJSON(app, function(data) { for (i = 0; i < data.query.search.length; i++) { var anchor = $("<a></a>", { "text": data.query.search[i].title, "href": 'https://www.wikipedia.org/wiki/' + data.query.search[i].title, "id": data.query.search[i].title }); var p = $("<p></p>", { "html": data.query.search[i].snippet }); $("body").append(anchor); $("body").append(p); } }); }); }); 

You should to do minor changes in your code as below. 您应该对代码进行一些小的更改,如下所示。

Change code are in between // Changes Code Start and // Changes Code End 更改代码介于//更改代码开始和//更改代码结束之间

var one;
var two;
var hoba;

$(document).ready(function(){
  $("#inp").keyup(function(){
             hoba = $(this).val();
        });
  $("#but").on("click",function(){

    var app = "https://en.wikipedia.org/w/api.php?action=query&format=json&prop=revisions&list=search&titles=Main+Page&rvprop=content&origin=*&srsearch="+hoba;

// Changes Code Start

    $.getJSON(app,function(data){
      for(i=0; i<data.query.search.length; i++){
        console.log(app);
        var dataAppend;

    var title = data.query.search[i].title;
    var href = 'https://www.wikipedia.org/wiki/' + data.query.search[i].title;
    var id = data.query.search[i].title;

        dataAppend = "<a href='"+href+"' id='"+id+"'>"+title+"</a>";
        dataAppend += "<p>"+data.query.search[i].snippet+"</p>";

        // \"
        $("body").append(dataAppend);
      }

    });

// Changes Code End

  });
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM