0

嗨,我正在尝试找到一种方法来遍历一些动态生成的选项。我尝试这样做:

console.log($("select#subcategory option").length);
$("select#subcategory option").each(function () {

            console.log($(this).val() + "ceva");
            if ($(this).val() == subcategoryId) {
                console.log($(this).val());
                $(this).attr("selected", "selected");
            }
});

但似乎 jQUery 没有看到任何生成的项目。我使用的是 jquery 1.5.1。

我怎么解决这个问题?

编辑

到目前为止,我在设法选择生成的元素方面没有运气。从到目前为止我尝试过的方法中,我可以看出两者都无法看到动态创建的 dom 元素。就好像它们不存在一样,但是如果我检查 Firebug 我可以看到它们。这个问题是否会出现,因为我在 ajax 调用后创建它们?

4

2 回答 2

1

您可以使用普通的 javascript :

   var select = document.getElementById('subcategory');
   for (var i=0; i<select.options.length; i++) {
       console.log(select.options[i]);
       if (select.options[i].value==subcategoryId) {
            select.selectedIndex = i;
            break;
       }
   }
于 2013-01-09T17:47:36.037 回答
1

试试这个:

$(document).find("select#subcategory option").each(function () {
    var subcategoryId = $('#subcategory').attr('id');
    console.log($(this).val() + "ceva");
    if ($(this).val() == subcategoryId) {
       console.log($(this).val());
       $(this).prop("selected", true);
    }
 });
于 2013-01-09T18:11:41.027 回答