[英]jQuery text() and val() returning null
编辑:似乎我没有在我的 textarea 上使用“id”,所以问题已经解决,但我仍然遇到一些 text() 问题
var e = $('textarea#cost-'+i).val(); // e = 1 (for first iteration)
alert($('p#subtotal-'+i).text()); // alert 'subtotal' which is the text in my p#subtotal-1
$('p#subtotal-'+i).text().replaceWith(e); // <- this is the problem, i think
alert($('p#subtotal-'+i).text()); // no alert box at all
这次我确保他们都有身份证。
下面的代码会生成一个没有任何内容的警报框。 如果我将其更改为 val() 它会显示“未定义”
$('textarea.costbox').live('blur',function() {
for(var i in items) {
alert('iteration '+i);
alert('textarea#cost-'+i);
var e = $('textarea#cost-'+i).text();
alert('cost '+e);
}
});
<textarea name="cost-1" class="costbox"></textarea>
此代码的想法是在值更改时更新小计。 这是拼图的最后一块。
当我在 chrome 中检查时,所有 HTML 看起来都很正常。 我的代码的所有 rest 工作正常。
这应该与基于最近的 HTML5Boilerplate 的modernizer1.7 和 jQuery1.5.1 一起运行。
这是相同基本事物的另一个示例 - http://jsbin.com/obeho5/3/edit
它可能很简单,但我已经被困在这里几个小时了,看不到它。
[如果它不是明显和简单的,我可以发布更多代码]
#
用于通过 ID 获取,您的元素没有 ID,只是一个名称。
添加一个 ID 或使用这个:
'textarea[name="cost-'+i+'"]'
您的示例中没有包含 jQuery 。 使用.val()
可以正常工作: http://jsbin.com/obeho5/4/edit
注意:关于您在问题中发布的代码,其他人是正确的,但您在演示中的标记不同。 在演示中,元素具有 ID。
$('textarea#cost-'+i).text();
正在寻找一个带有ID
的 textarea ,你已经给它一个名字,你需要做:
$('textarea[name="cost-' + i +'"]').text();
编辑:对于您更新的问题:
$('p#subtotal-'+i).text().replaceWith(e);
应该
$('p#subtotal-'+i).text(e);
您无需担心replaceWith,您只需将新文本添加为方法的参数即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.