Javascript获取自定义按钮';s文本值

Javascript获取自定义按钮';s文本值,javascript,html,Javascript,Html,我有一个按钮,定义如下: <button type="button" id="ext-gen26" class=" x-btn-text">button text here</button> 按钮文本在这里 我试图根据文本值获取它,但是,它的所有属性都不包含文本值。从外观上看,它是以一种非常定制的方式生成的 除了浏览html文本之外,还有人知道通过编程找到这个值的方法吗?除了属性之外 忘了另一件事,这个按钮的id会定期更改,使用jquery抓取它会导致页面因某种原因被

我有一个按钮,定义如下:

<button type="button" id="ext-gen26" class=" x-btn-text">button text here</button>
按钮文本在这里
我试图根据文本值获取它,但是,它的所有属性都不包含文本值。从外观上看,它是以一种非常定制的方式生成的

除了浏览html文本之外,还有人知道通过编程找到这个值的方法吗?除了属性之外

忘了另一件事,这个按钮的id会定期更改,使用jquery抓取它会导致页面因某种原因被破坏。如果你需要我为什么需要这个的背景资料,请告诉我

这就是我试图抓住它的javascript:

var all = document.getElementsByTagName('*'); 
for (var i=0, max=all.length; i < max; i++) 
{
var elem = all[i];
if(elem.getAttribute("id") == 'ext-gen26'){
    if(elem.attributes != null){
        for (var x = 0; x < elem.attributes.length; x++) {
            var attrib = elem.attributes[x];
            alert(attrib.name + " = " + attrib.value);  
        }
    }
}
};
var all=document.getElementsByTagName('*');
对于(变量i=0,max=all.length;i
它只返回代码中定义的三个属性


innerHTML、文本和文本内容都返回为空。

您可以通过
textContent
/
innerText
属性(取决于浏览器)执行此操作。下面是一个无论浏览器使用哪种属性都有效的示例:

var elem = document.getElementById('ext-gen26');
var txt = elem.textContent || elem.innerText;
alert(txt);

您也可以使用jQuery来完成这项工作:

alert($('#ext-gen26').text());

如果您试图完全通过按钮的文本内容来定位按钮,我会抓取所有按钮的列表,并循环查找这些按钮:

function findButtonbyTextContent(text) {
  var buttons = document.querySelectorAll('button');
  for (var i=0, l=buttons.length; i<l; i++) {
    if (buttons[i].firstChild.nodeValue == text)
      return buttons[i];
  }  
}
函数findButtonbyTextContent(text){
var buttons=document.queryselectoral('button');

对于(var i=0,l=buttons.length;i一行,用于根据按钮的文本查找按钮

const findButtonByText = text => 
  [...document.querySelectorAll('button')]
    .find(btn => btn.textContent.includes(text))

“文本值”就是“html文本”;这就是你所能做的,因为它是DOM中唯一存在的位置。编辑,等等;你想从按钮中获取文本,还是想根据它的内容找到按钮?你的问题的标题和第一句话的措辞有点冲突;“获取自定义按钮的文本值”与“我正试图根据文本值获取它”。“这意味着不同的事情。你想找到一个包含“button text here”内容的按钮,并对其进行处理吗?@Pointy-是的,最终我会根据标签之间的文本值,尝试在按钮本身上设置一个钩子。“textContent”和innerHTML都返回为空值:(@hacket如果这些值为null,则您没有对按钮的引用。您可能应该发布一些有问题的JavaScript代码。@Allan-是的,这是我的最终目标。此字段的ID是动态的,如果我使用jQuery获取它,则会导致页面的其余部分无法正常工作。感谢解决方案,但是,我更新为reflect显示ID和jquery在我的情况下不起作用。这接近于我最终实现的结果。根本无法使用任何属性选择该按钮。