此问题是jQuery Character Counter using class?的扩展名。
我想在我的textarea字段中添加data-content="####"
,然后使用jQuery提取数值并将其应用于字符计数器限制器。
<textarea id="field1" class="input-xlarge limitChars" data-content="2000" rows="2" name="field1">
此字段的限制为2000个字符
<textarea id="field2" class="input-xlarge limitChars" data-content="1000" rows="2" name="field2">
此字段的上限为1000个字符
<textarea id="field3" class="input-xlarge limitChars" data-content="1500" rows="2" name="field3">
,这个将是1500个字符。
从我的另一个问题的解决方案(参见下面的解决方案),我假设我需要从DOM中提取数据内容,然后将其应用于目标。我只是不知道如何从数据内容中提取价值,并希望得到一些帮助。
$(document).ready(function(){
$(".limitChars").each(function() {
$(this).counter({
goal: 500
});
});
});
=============================================== ======
通过发生的扩展对话框,我认为展示我最终得到的内容可能会有所帮助:
HTML
<textarea id="field1" class="input-xlarge" counter-limit="2000" rows="2" name="field1"> this field would have a limit of 2000 chars
的JavaScript / jQuery的
$("[data-counter-limit]").each(function() {
var $this = $(this), limit = +$(this).data("counter-limit");
$this.counter({
goal: parseInt(limit,10)
// goal: limit
});
});
答案 0 :(得分:2)
使用.data()
方法从data-
属性中提取值。然后使用parseInt(string, radix)
将其转换为数字
$(document).ready(function(){
$('.limitChars').each(function() {
var self = $(this);
self.counter({
goal: parseInt(self.data('content'),10)
});
});
});
答案 1 :(得分:1)
您可以直接删除类名limit500
并仅使用 data-*
属性data-counter-limit
。它比使用两者更清洁。
<textarea data-counter-limit="1000">
$("[data-counter-limit]").each(function() {
var $this = $(this), limit = +$(this).data("counter-limit");
$this.counter({
goal: limit
});
});
选择器[data-counter-limit]
将获取具有属性data-counter-limit
的所有元素。其余的是解析限制并应用处理元素。