【问题标题】:jQuery text() and val() returning nulljQuery text() 和 val() 返回 null
【发布时间】:2011-09-10 03:40:26
【问题描述】:

编辑:似乎我没有在我的 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

这次我确保他们都有 ID。


以下代码生成一个警告框,其中没有任何内容。 如果我将其更改为 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

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

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

【问题讨论】:

  • textarea 有 id="cost-1" 而不是名称对吗?或者至少两者都有,否则我看不到该代码与 text 或 val 一起使用
  • 物品应该是什么,你从哪里得到它?您是否打印出(firebug 的 console.log 或警报)“i”是什么?
  • 'items' 将是一个帮助计算小计的数组,但我找到了更好的方法。而“我”不是问题,循环工作正常。

标签: jquery text null


【解决方案1】:

#用于通过ID获取,你的元素没有ID只是一个名字。

添加一个 ID 或使用这个:

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

【讨论】:

  • facepalm,它只需要一双新鲜的眼睛不是吗。
  • @Brae:请注意,您的演示中的问题是另一个问题。但是这些天人们投票的速度非常快......
  • 他们也很快发布了虚假答案,然后回来帮助它获得积分。
【解决方案2】:
$('textarea#cost-'+i).text();

正在寻找带有ID 的文本区域,你已经给它起了名字,你需要这样做:

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

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

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

应该是

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

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

【讨论】:

  • 干杯,我在这个问题上工作太久了,你不知道更新后的问题是怎么回事吗?
  • @Brae:你应该使用.val()
【解决方案3】:

your example 中没有包含 jQuery。使用.val() 可以正常工作:http://jsbin.com/obeho5/4/edit

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

【讨论】:

  • 你的答案只有在你改变他的标记时才有效,所以不,它不能正常工作。
  • @Jeremy:他在现场示例中使用了 ID。我没有更改标记(除了添加 jQuery)。
  • 如果有人投反对票先看看他的例子,我将不胜感激:jsbin.com/obeho5/3/edit。 OP基本上使用了两个具有不同问题的示例,这不是我的错。
  • 不确定谁对你投了反对票,我会重新提出来,是的,发帖者确实有两个不同的例子。
  • 我确实说过这是一个不同的例子......但无论如何谢谢你把它整理出来,是的,它没有 jQuery 我在测试其他东西时把它取下来,忘了把它放回去,干杯。
猜你喜欢
  • 1970-01-01
  • 2013-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-06
  • 2016-12-01
  • 1970-01-01
  • 2012-06-05
相关资源
最近更新 更多