我正在尝试检查文本字段是否存在另一个元素,如果有,我想设置它的值;否则,我想添加收音机。我有以下代码,但它不起作用。
$("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
});
答案 0 :(得分:1)
textfield已经是一个jquery对象,所以你需要使用textfield.val(“9999”)
来设置它。答案 1 :(得分:0)
.find()也会返回一个元素列表,所以如果有多个元素,这可能不起作用。您可能需要在textfield变量上执行另一个.each()。