Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript-在按钮下设置span的innerHTML_Javascript_Jquery_Html - Fatal编程技术网

Javascript-在按钮下设置span的innerHTML

Javascript-在按钮下设置span的innerHTML,javascript,jquery,html,Javascript,Jquery,Html,我有一个DOM,它在运行时由插件(部分)设置,所以我不能完全控制它。我在HTML中创建的初始对象是一个对象,插件引导选择将创建为同级对象。这个又有一个子元素(也是由插件创建的)。就是这个元素,我想更改它的文本 我还改变了按钮本身的背景色,这很有效。我只需要在函数中添加一两行来更新span的文本,就可以了 下面是DOM相关部分的屏幕截图(灰色部分是我必须设置的): 这是我的密码。这本书最初是为了设置按钮的背景色,在某种程度上它可以正常工作。我只需要展开它来设置文本: function setCo

我有一个DOM,它在运行时由插件(部分)设置,所以我不能完全控制它。我在HTML中创建的初始对象是一个
对象,插件
引导选择将
创建为同级对象。这个
又有一个子
元素(也是由插件创建的)。就是这个
元素,我想更改它的文本

我还改变了按钮本身的背景色,这很有效。我只需要在函数中添加一两行来更新span的文本,就可以了

下面是DOM相关部分的屏幕截图(灰色部分是我必须设置的):

这是我的密码。这本书最初是为了设置按钮的背景色,在某种程度上它可以正常工作。我只需要展开它来设置文本:

function setColorForSelect(elem, col) {
    // this will change the background color of the <select> object just changed to match the selection
    // this is necessary because bootstrap-select imposes a complex DOM structure on the <select> item
    // (there is a <button> that is what is being displayed, so that is the object whose background color needs
    //    to be changed, not the <select> object itself)

    $(elem).siblings().each(function() {
        var _this = $(this);
        if(_this.is(":button")){
             _this.css('background-color', col);
             $(this).children(":first").innerHTML = col; //<-- THIS IS THE LINE THAT DOESN'T WORK!
             return false;
         }
    }); 
}
函数setColorForSelect(元素、列){
//这将更改刚刚更改的对象的背景色以匹配选择
//这是必要的,因为引导选择将复杂的DOM结构强加给项
//(有一个是正在显示的对象,因此该对象的背景色需要
//要更改,而不是对象本身)
$(elem).同级().each(function()){
var_this=$(this);
如果(_this.is(“:button”)){
_css('background-color',col);
$(this).children(“:first”).innerHTML=col;//使用此语法

在按钮中找到第一个跨距并更改其文本

$(this).find(“span:eq(0)”).text(col);

按特定类查找范围并更改其文本

$(this.find(“span.filter选项”).text(col);


还有两种其他方法。我想其他答案中已经指出了这些方法。

没有错误的原因是您刚刚将
col
值分配给jQuery对象上的
innerHTML
属性

使用jQuery为其对象提供的
html
函数

.children(":first").html(col);
或者使用jQuery提供的
text
函数

.children(":first").text(col);
或者通过访问本机元素来使用本机JavaScript api

.children(":first")[0].innerHTML = col;
或者使用getter jQuery提供的获取本机元素,然后使用本机API

.children(":first").get(0).innerHTML = col
再来一个

你也可以这样做:

$('span:first',this).text(col);//


希望能有所帮助!

我认为你的第二个想法奏效了。我可以看到文本改变了一秒钟左右,然后又恢复到第0个标记中的文本。还有一些事情正在发生,所以我必须继续挖掘,但我认为你的答案是正确的,因为它与我的问题有关。谢谢你!@Randall,但我认为你不是走这条路必须仔细阅读插件文档,找出将值设置为跨度的方法。我确信插件将具有该功能。你所尝试的都是一个解决方案。请保留此选项。我一直在搜索,但在他们的文档中找不到任何内容。我能找到的最好的东西是这篇文章,它是ally建议像我现在这样遍历DOM树。有道理。谢谢!