2012-01-17 39 views
0

我試圖檢查一個文本字段是否存在與另一個元素,並且我想設置它的值,如果它確實;否則,我想添加一個收音機。我有下面的代碼,但它不工作。javascript + jquery檢查元素是否存在,然後設置它的值,否則別的東西

$("ul").each(function(){ 
if (!($(this).find('input[value="9999"]').val())) { 
    var textfield = $(this).find('input[type="text"]'); 
    if (textfield.length) textfield.value="9999"; 
    //^this doesn't work. have also tried if ($(textfield).val()) 
    else $(this).append('<input name="'+name+'" type="radio" value="9999" checked="checked" />'); 
    //^this works 
} // if 
}); 

btw,name在腳本的前面動態設置。

$("ul").each(function(){ 
if (!($(this).find('input[value="9999"]').val())) { 
    var txtfield = $(this).find('input[type="text"]'); 
    if (txtfield.length) $(txtfield).val("9999"); 
    // just changed this^line (above) 
    else $(this).append('<input name="'+name+'" type="radio" value="9999" checked="checked" />'); 
} // if 
}); 
+2

您是否嘗試將文本字段的值設置爲'$(textfield).val(「9999」)'? – Anurag 2012-01-17 23:07:08

+1

請包括您的HTML。 – 2012-01-17 23:19:34

+0

''或'' – jacob 2012-01-18 17:15:05

回答

1

文本框是一個jQuery對象已經所以你需要使用textfield.val設定值( 「9999」)

+0

就是這樣。謝謝! – jacob 2012-01-18 17:25:15

0

.find()也將返回元素列表,所以如果有多個元素,這可能不起作用。您可能需要對textfield變量執行另一個.each()。

+0

嗯......我會期望'textfield.value =「9999」'執行在查找的第一個元素,如果是這種情況,但我會嘗試'.each()'。 – jacob 2012-01-18 17:17:38

相關問題