0

让我们这么说

  • 我有多个 DIV 元素。
    我不知道我有多少 DIV,
    因为它们是由其他应用程序生成的。

  • 无论如何,由于它是纯 HTML 元素,
    我想使用 Jquery 遍历每个 DIV,
    因为我想访问每个 DIV 内部的每个下拉列表。

.

/// I want to iterate each and every Divs 
/// by using loop
for(int i=0; i<DIVs.Count; i++){       

/// I want to access each and every html dropdowns
/// I want to get each and every selected dropdown value
for(int j=0; j<DIVs[i].DropdownList.Count; j++){
    alert(DIVs[i].DropdownList[j].SelectedValue);
}

/// Then finally , I want to get hidden productID
alert(Divs[i].HiddenProductID);
}

那么任何人都可以给我建议如何将我的上层算法更改为 jquery 代码。

我还将我的 html 上传到jsfiddle 站点,以便每个人都可以看到。

每一个建议都将不胜感激。

4

3 回答 3

2

你可以试试这段代码:

$("div._Individual_Product_").each(function (index,elem) {    
    $("select",$(this)).each(function(){
        alert($(this).val());    
    });
});
于 2012-11-19T08:53:41.883 回答
1

如果您需要获取两个分隔的值和 ID 数组,您可以简单地使用以下代码:

var values = [];
$(".dynamicDropDownList").each(function (index) {
    var selectValue = this.value;
    values.push(selectValue);
    console.log(index + " - " + selectValue);
});
var productIds = [];
$("._class_hidden_Product_ID_").each(function (index) {
    var productId = this.value;
    productIds.push(productId);
    console.log("Product " + index + "'s id is " + productId);
});

如果你需要他们配对,你可以使用这样的东西:

var products = [];
$("._Individual_Product_").each(function () {
    var $this = $(this);
    products.push({
        selectValue: $this.find(".dynamicDropDownList").val(),
        productId: $this.find("._class_hidden_Product_ID_").val()
    });
});

此外,您实际上可以知道那里有多少个 div。任何 jQuery 对象都有length属性,它告诉你匹配的 DOM 元素的确切数量。因此$("._Individual_Product_").length将返回所需的数字。

于 2012-11-19T09:00:05.790 回答
1

这是您在 jQuery 中的代码

// 1. Iterate through every DIVs
$("div._Individual_Product_").each(function() {

    // 2. Iterate through every dropdownlists inside each DIVs
    $("select",$(this)).each(function(){

          // 3. Get each and every selected dropdown value
          alert($(this).val()); 
    });
});

您还可以像这样获取 DIV 和下拉列表计数:

var div = [];
var dropdownList = [];

// 1. Iterate through every DIVs
$("div._Individual_Product_").each(function() {

    div.push($(this));

    // 2. Iterate through every dropdownlists inside each DIVs
    $("select",$(this)).each(function(){

          dropdownList.push($(this).val());
    });

    // 3. Count dropdownlists inside each DIVs
    alert('DropdownList Count - ' + dropdownList.length);
    dropdownList = [];
});

alert('DIVs Count - ' + div.length);

希望这可以帮助!

于 2012-11-19T09:28:32.580 回答