2

Webサービスへの呼び出しの結果を使用して、リンクのリストを動的に作成しようとしています。<ul>HTMLに要素があります。

<ul id="myList"></ul>

そして、jQueryforeachとappendを使用してリストアイテムを作成しようとしています。

次のデータが与えられます:

var options = {
    {href: "#", text:"text"},
    {href: "#", text:"text"},
    {href: "#", text:"text"},
    {href: "#", text:"text"}
};

次のスクリプトを使用してリストを作成できると思いました。

$each(options, function(index) {
    $("#myList").append($("<li>", {}).append($("<a>", { href: options[index].href })).text(options[index].text));
});

一種の作業ですが、テキストはアンカー要素の外側になります。最終的には次のようになります。

<ul id="myList">
  <li><a href="#">Text</a></li>
  <li><a href="#">Text</a></li>
  <li><a href="#">Text</a></li>
  <li><a href="#">Text</a></li>
</ul>

誰かが私がどこで間違っているのか教えてもらえますか?

ありがとう。

4

6 に答える 6

2

あなたは近かったが、あなたの構文は少し間違っている。

var options = [
    {href: "#", text:"text"},
    {href: "#", text:"text"},
    {href: "#", text:"text"},
    {href: "#", text:"text"}
];

$.each(options, function(index) {
    $("#myList").append($("<li>", {}).append($("<a>", { href: options[index].href }).text(options[index].text)));
});

オブジェクトを含むオプションの配列が必要です。また、で構文エラーが発生しました$.each。例: http: //jsfiddle.net/5ZDZX/1/

于 2013-03-14T17:36:21.370 に答える
1

これを試して

$.each(options, function(index) {
    $("#myList").append($("<li>").append($("<a>", { href: options[index].href , text : options[index].text})));
});

http://jsfiddle.net/uMUzf/

于 2013-03-14T17:35:10.003 に答える
1

appendsを間違ってネストしている可能性があると思います。試す:

$.each(options, function(index) {
    $("#myList").append(
        $("<li>", {}).append(
            $("<a>", { href: options[index].href }).text(
                options[index].text
            )
        )
    );
});

あなたがそれを持っていた方法で、あなたはにではなくを追加してtextいました。<li><a>

于 2013-03-14T17:36:07.387 に答える
0

これは.textli notaタグを設定しているためです。

また、の代わりにをoption使用してオブジェクトが正しく設定されていない{ }[ ]

デモ:http://jsfiddle.net/4WTG3/

これを試して:

var options = [
    {href: "#", text:"text"},
    {href: "#", text:"text"},
    {href: "#", text:"text"},
    {href: "#", text:"text"}
];

$.each(options, function(index) {
    $("#myList")
    .append($("<li>", {})
        .append($("<a>", { href: options[index].href }).text(options[index].text)
    ));
});
于 2013-03-14T17:36:52.850 に答える
0

オブジェクトの配列が必要であり、appendステートメントは少し複雑すぎるようです。

http://jsfiddle.net/x23ja/

$.eachまた、代わりに使用する必要がありました$each

于 2013-03-14T17:41:08.327 に答える
0

私はこれをうまく使いました

$.each(result, function (i, file) {
                $("#filelist").append('<li><a target="_blank" href="' + downloadUrl + '/' + file.StaticFileId + '">' + file.ShortDesc + '</a></li>');
});
于 2020-06-11T13:37:53.573 に答える