繁体   English   中英

jQuery text() 和 val() 返回 null

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM