2016-03-31 51 views
1

有沒有辦法使用jQuery來動態設置存儲在變量中的HTML元素的屬性?設置存儲在變量中的元素的屬性

例如,在我的應用程序中的某一點,用戶創建了不同數量的選擇輸入字段。爲了最終通過PHP進行處理,元素需要以name='input'+siteNumber+'['+x+']'的格式命名,其中x是在for循環中創建的元素的數量。

下面是我在想什麼需要做的粗略草圖 - 這不是功能代碼,它只是一個插圖。

$(".number_select").change(function(){ 
    numberFound = $(this).val(); 
    siteNumber = $(this).parent().attr('data-site_number'); 
    //HERE'S THE INPUT TO BE NAMED 
    selectInput = "<select></select>"; 

    this['inputArray' + siteNumber] = []; 

    for(x = 1; x <= numberFound; x++){ 
     //THIS IS WHAT I'D LIKE TO ACCOMPLISH - SETTING THE ATTRIBUTE - THOUGH THIS UNDERSTANDABLY DOES NOT WORK IN THIS PARTICULAR FORMAT   
     this['inputArray' + siteNumber].push(selectInput.attr("name", "species"+siteNumber+"["+x+"]")); 
    }; 

    $(this).parent().append(this['inputArray' + siteNumber]); 
}; 

謝謝。

+1

我認爲如果你要編寫非功能代碼,你應該寫一步一步或僞代碼。 – ggderas

+1

如果你創建一個jQuery對象的實際DOM元素,你可以操縱屬性 – scrappedcola

回答

1

謝謝大家 - 其實我最終決定以不同的方式處理這一點,但它完美 - 而不是存儲在變量中的元素,我用,而不是一個功能...

function inputs(siteNumber, x){ 
    return ("<select name='selectInput"+siteNumber+"["+x+"]'>"+list+"</select>"); 
}; 

$(".number_select").change(function(){ 
    numberFound = $(this).val(); 
    siteNumber = $(this).parent().attr('data-site_number'); 

    this['inputArray' + siteNumber] = []; 

    for(x = 1; x <= numberFound; x++){ 
     this['inputArray' + siteNumber].push(inputs(siteNumber, x)); 
    }; 

    $(this).parent().append(this['inputArray' + siteNumber]); 
}; 

不要知道我爲什麼沒有首先想到這一點,現在看來很明顯。哦,生活和學習。

0

要隱約回答你的問題,你可以動態地生成一個元素,並使用jQuery的attr來很容易地調整name屬性。

var select = $('<select>').attr('name', 'add-name-here'); 
 

 
$('<option>').attr('value', 'some-value').text('Option').appendTo(select); 
 

 
$('#wrapper').html(select);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
    
 
<div id="wrapper"></div>

,輸出

<select name="add-name-here"> 
    <option value="some-value">Option</option> 
</select> 

在你的情況,而不是將它添加到#wrapper,因爲你需要你建立的選擇框,其追加到哪個選擇框了改變?不確定你的具體用例。希望能幫助到你。

相關問題