javascript/jquery::获取文本值?
我有这样一个dom结构:javascript/jquery::获取文本值?,javascript,jquery,dom,text,Javascript,Jquery,Dom,Text,我有这样一个dom结构: abcdef 我想在单击时从标记获取文本 然而,当使用this.text时,我得到的是abcdef,而不仅仅是abc 我怎样才能只获取的文本值呢 我是否必须这样做,然后对的文本长度执行substr()操作?您可以通过从中获取,而不包含这些子元素,这样做: $("a").click(function() { var text = $(this).clone().children().remove().end().text(); }); .您可以通过从中获取,而不包含
abcdef
我想在单击时从
标记获取文本
然而,当使用this.text时,我得到的是abcdef
,而不仅仅是abc
我怎样才能只获取
的文本值呢
我是否必须这样做,然后对
的文本长度执行substr()
操作?您可以通过从中获取,而不包含这些子元素,这样做:
$("a").click(function() {
var text = $(this).clone().children().remove().end().text();
});
.您可以通过从中获取,而不包含这些子元素,如下所示:
$("a").click(function() {
var text = $(this).clone().children().remove().end().text();
});
.另一个选项:
var text = $("a").contents().filter(function() { return this.nodeType == Node.TEXT_NODE; }).text();
var text = $('a').text().replace($('a span').text(), '');
另一种选择:
var text = $("a").contents().filter(function() { return this.nodeType == Node.TEXT_NODE; }).text();
var text = $('a').text().replace($('a span').text(), '');
如果这是实际结构(位于
之前的
文本),则可以执行以下操作:
$('a').click(function() {
var txt = this.firstChild.nodeValue;
});
这将非常快,但同样,它假定文本始终位于第一位,并且不会被其他元素分割。如果这是实际结构(文本位于
之前),则可以执行以下操作:
$('a').click(function() {
var txt = this.firstChild.nodeValue;
});
这将非常快,但同样,它假定文本始终排在第一位,并且不会被其他元素分割。与其使用库遍历dom,不如让浏览器为您执行以下操作:
var string = element.innerText || element.textContent;
这应该适用于所有基于webkit的浏览器,firefox、ie和opera。与其使用库遍历dom,不如让浏览器为您执行以下操作:
var string = element.innerText || element.textContent;
这应该适用于所有基于webkit的浏览器、firefox、ie和opera。另一个选项:
var text = $("a").contents().filter(function() { return this.nodeType == Node.TEXT_NODE; }).text();
var text = $('a').text().replace($('a span').text(), '');
另一种选择:
var text = $("a").contents().filter(function() { return this.nodeType == Node.TEXT_NODE; }).text();
var text = $('a').text().replace($('a span').text(), '');
我注意到Nick下面的一个是克隆的,因此是一个额外的对象。这个方法也会产生一个额外的对象吗?不,它不会产生一个额外的对象。我注意到Nick下面的方法产生了一个克隆,因此产生了一个额外的对象。这个方法也会生成一个额外的对象吗?不,它不会创建一个额外的对象。这仍然会给你“abcdef”。这仍然会给你“abcdef”。