1

次のコードでは、さまざまなことを行っていますが、今見ているのは、作成している各要素の id 名と同じ名前を各メニュー項目 href に割り当てているという事実です。

$(".nav li a").on("click", function(e) {
$(this).attr("href",$(".span6").attr("id"));
$('#content').removeAttr('id');

var $row = $(".span9");
var $rowNew = $('.new');

if ($rowNew.children().length > 1) {
        $(".span9 div").removeClass("new");
        $('<div class="row-fluid new"></div>').prependTo($row);
}

if ($(".new").length == 0) {
        $('<div class="row-fluid new"></div>').prependTo($row);
        $('<div id="content" class="span6"></div>').appendTo('.new');
} else {
    $('<div id="content" class="span6"></div>').appendTo('.new');
}

});

これは、作成している各要素の id 名と同じ名前を各メニュー項目 href に割り当てる方法です。

    $(this).attr("href",$(".span6").attr("id"));

それぞれに新しい一意のID名を作成する必要があります<div id="content" class="span6"></div>

私はそれがすでに呼び出されたIDを持っていることを知ってい#contentますが、クリックでそれを削除しています$('#content').removeAttr('id');

毎回新しい一意の ID を生成するにはどうすればよいですか?

PHPを使用した別のテンプレートでは、次のようにします。<?php $a = 1; ?>次に<div class="span6" id="<?php echo "i".$a; ?>">、ループで、<?php $a++; ?>しかし私の場合はjqueryについてですか?

<div id="content" class="span6"></div>また、最初と最後に関しては、ID #content セットが既に設定されているため、何かを行う必要があると思います。これらの ID は、現時点では次のクリックでのみ削除されるため、新しい ID を作成すると 2 つの ID が作成されます。最初で最後だと思います。

4

1 に答える 1

1

関数を使用して、使用可能な最初の ID をテストできます。

function setId(elem)
{
    var first = 0;
    while($('#i'+first).length > 0) first++;
    elem.setAttr('id', 'i'+first);
}

//Usage:
setId(myJqueryObject);
于 2013-02-07T00:56:59.793 に答える