2012-08-07 183 views
0

我有一些輸入,我想用我從文本中獲得的值填充它們。 這裏是我的代碼:jquery:選擇器和隱藏

$("#dialog-test fieldset").hide(); 
$("#dialog-test fieldset:eq("+j+")").show(); 
$(this).children(".testValue").each(function(k,item) { 
    $("#dialog-test fielset:visible input").eq(k).val($(this).text()); 
}); 
$("#dialog-test").dialog("open"); 

這不到風度工作原因#對話框的測試是隱藏的,因此:不要看到任何回報。 這工作,但我只當IM做改變的所有值打開我的對話框:

$("#dialog-test fieldset").hide(); 
$("#dialog-test fieldset:eq("+j+")").show(); 
$(".ui-dialog:eq(2) .ui-button-text:first").text("Modifier le test"); 
$("#dialog-test").dialog("open"); 
$(this).children(".testValue").each(function(k,item) { 
    $("#dialog-test fieldset:visible input").eq(k).val($(this).text()); 
}); 

我會用第一個解決方案,但不能設法找到如何處理,使這樣的:可見的作品。

感謝很多的幫助, 添

+1

與[this](http://jsfiddle.net/mfHDg/)相似? – 2012-08-07 12:59:19

+0

這幫助我,我編輯我的問題導致我的問題其實是其他。 – timmalos 2012-08-07 13:13:19

回答

2

這裏:

var $inputs = $('fieldset', '#dialog-test').hide().eq(j).show().find('input'); 

$(this).children('.testValue').each(function (i, val) { 
    $inputs.eq(i).val($(this).text()); 
}); 
+0

確實使用方括號表示法返回一個DOM元素而不是一個jQuery對象? – 2012-08-07 13:01:30

+0

@wirey是的。我已將它改爲'eq(i)'。謝謝。 – 2012-08-07 13:02:37

+0

我的問題還不夠清楚,我編輯了它 – timmalos 2012-08-07 13:15:23

0

您可以嘗試均衡濾波器通過指數來選擇coresponding輸入:

$(this).children(".testValue").each(function(k,item) { 
    alert($(this).text()); 
    $("#dialog-test input:visible").eq(k).val($(this).text()); 
}); 

問候

艾蒂安

0

試試這個。

var visible_inputs = $('#dialog-test input:visible'); 
var i =0; 
$(this).children('.testValue').each(function(){ 
    $((visible_inputs)[i++]).val($(this).text()); 
});