如何获取元素的文本值

时间:2014-09-17 13:07:14

标签: jquery

我有以下HTML:

<div id="search_tbl_info" class="dataTables_info">Showing 1 to 20 of 62 entries</div>

62将从用户更改为用户。 它可能是0或它可能是2,431,介于两者之间。 另外值得注意的是,如果只有5个条目,则会显示:

<div id="search_tbl_info" class="dataTables_info">Showing 1 to 5 of 5 entries</div>

因此有几个值可能会发生变化。

如何在第一个示例中使用jQuery获取62的数值? 或2,431或5或任何值?

谢谢!

4 个答案:

答案 0 :(得分:1)

如果你有这种特殊形式的文字

您可以使用:

var text = $('#search_tbl_info').text();
console.log(text.substring(text.indexOf('of') + 3, text.length - 8));

DEMO

答案 1 :(得分:0)

数据-atributes
一种方法是添加data-属性。 我更喜欢这种工作方式,因为如果您需要更改文本,则无需更改代码。 (并考虑多种语言为例)

<div id="search_tbl_info" class="dataTables_info" data-start="1" data-to="20" data-total="62">Showing 1 to 20 of 62 entries</div>

现在您可以通过以下方式访问该值:

$("#search_tbl_info").attr('data-start/data-to/data-total')

或:

$("#search_tbl_info").data('start/to/total')

如果您需要所需的全文:

$("#search_tbl_info").text()

(不需要数据属性)

<强>跨度
另一种方法是跨越数字。像:

<div id="search_tbl_info" class="dataTables_info">Showing <span clas="from">1</span> to <span clas="to">20 </span>of <span clas="total">62</span> entries</div>

您可以通过以下方式访问它们:

$('#search_tbl_info .from').text()
$('#search_tbl_info .to').text()
$('#search_tbl_info .total').text()

答案 2 :(得分:0)

您可以尝试简单地抓取文本,将文本字符串拆分为空格并返回返回的数组的第5个索引。它看起来像下面这样:

// Together
var text = (($('#search_tbl_info').text()).split(' '))[5];

// Broken Out
var text = $('#search_tbl_info').text();
text = text.split(' ');
text = text[5];

请注意,此解决方案有效,因为在这两种情况下,总数(在这种情况下是所需的数字)似乎始终是字符串的第6部分(不包括空格)。这与基于5索引的数组中的位置0相关联。

重要提示:如果<div>中的字数发生变化或字符串中的总数发生变化,此解决方案将根据确切的索引而分崩离析。

<强> DEMO

答案 3 :(得分:0)

我认为如果字符串保持相同的格式,即

  

数字显示为数字条目的数字

然后我们可以使用以下代码

 $(document).ready(function () {
        var div_string = $('#search_tbl_info').text();
        var Total_Count = sd.substring(sd.lastIndexOf("of") + 3, sd.lastIndexOf(" entries"));
        alert(Total_Count)
    });

变量 Total_Count 包含所需的计数。