Javascript 在jQuery Mobile中更改数据图标?

Javascript 在jQuery Mobile中更改数据图标?,javascript,jquery,jquery-mobile,Javascript,Jquery,Jquery Mobile,我在网上找到了很多解决方案,但没有一个适合我。基本上,我想切换按钮的图标。以下是HTML: <div data-role="navbar" data-iconpos="top"> <ul> <li><a data-icon="arrow-u">View suggestions</a></li> </ul> </div> // // 但是,由于某种原因,在运行上述任

我在网上找到了很多解决方案,但没有一个适合我。基本上,我想切换按钮的图标。以下是HTML:

  <div data-role="navbar" data-iconpos="top">
    <ul>
      <li><a data-icon="arrow-u">View suggestions</a></li>
    </ul>
  </div>
//

//

但是,由于某种原因,在运行上述任何一项之后,按钮的子元素都会消失(jQuery Mobile在按钮内部添加了一堆

尝试以下操作:

$(this).attr('data-icon','arrow-u').button().trigger("refresh");

查看相关论坛帖子:

我发现了问题!我使用了
$(this).text('Hide suggestions')
,它删除了所有子元素。我将其更改为
$(this).find('.ui btn text').text('Hide suggestions')现在它工作得很好

这些对我来说很有用:

$("#yourButtonId .ui-icon").removeClass("ui-icon-gear").addClass("ui-icon-delete");

$(this).children("span").children(".ui-icon").removeClass("ui-icon-gear").addClass("ui-icon-delete");

$(this).find(".ui-icon").removeClass("ui-icon-gear").addClass("ui-icon-save");

我不知道巫婆是最好的,我认为是最后一个。

最好的方法是:

$('#button').buttonMarkup({ icon: "home" });
$(this).attr('data-icon','arrow-u').button().trigger("refresh");
$("#yourButtonId .ui-icon").removeClass("ui-icon-gear").addClass("ui-icon-delete");

$(this).children("span").children(".ui-icon").removeClass("ui-icon-gear").addClass("ui-icon-delete");

$(this).find(".ui-icon").removeClass("ui-icon-gear").addClass("ui-icon-save");
$('#button').buttonMarkup({ icon: "home" });