javascript + jquery检查元素是否存在,然后设置其值,否则为其他内容

时间:2012-01-17 23:04:52

标签: javascript jquery if-statement exists

我正在尝试检查文本字段是否存在另一个元素,如果有,我想设置它的值;否则,我想添加收音机。我有以下代码,但它不起作用。

$("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 个答案:

答案 0 :(得分:1)

textfield已经是一个jquery对象,所以你需要使用textfield.val(“9999”)

来设置它。

答案 1 :(得分:0)

.find()也会返回一个元素列表,所以如果有多个元素,这可能不起作用。您可能需要在textfield变量上执行另一个.each()。