jQuery text()和val()返回null

时间:2011-06-07 14:42:25

标签: jquery text null

编辑:似乎我没有在我的textarea上使用'id',所以问题已经解决但我仍然遇到一些文本问题()

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

这次我确定他们都有ids。


以下代码生成一个没有任何内容的警告框。 如果我将其更改为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看起来都很正常。其余所有代码都运行正常。

这应该与modernizer1.7和jQuery1.5.1一起运行,基于最近的HTML5Boilerplate。

以下是同一基本内容的另一个例子 - http://jsbin.com/obeho5/3/edit

它可能很简单但我已经被困在这里几个小时而且看不到它。

[如果它不是明显和简单的东西,我可以发布更多的代码]

3 个答案:

答案 0 :(得分:4)

#用于获取ID,您的元素没有ID只是名称。

添加ID或使用它:

'textarea[name="cost-'+i+'"]'

答案 1 :(得分:2)

您未在your example中添加jQuery。它可以使用.val()http://jsbin.com/obeho5/4/edit

正常工作

注意:其他人对于您在问题中发布的代码是正确的,但您在演示中的标记是不同的。在演示中,元素具有ID。

答案 2 :(得分:1)

$('textarea#cost-'+i).text();

正在寻找带有ID的textarea,你给它起了一个名字,你需要这样做:

$('textarea[name="cost-' + i +'"]').text();

编辑:针对您更新的问题:

$('p#subtotal-'+i).text().replaceWith(e); 

应该是

$('p#subtotal-'+i).text(e);

您无需担心replaceWith,您只需添加新文本作为方法的参数即可。