【问题标题】:How to change an element's title attribute using jQuery如何使用 jQuery 更改元素的标题属性
【发布时间】:2010-11-02 13:04:00
【问题描述】:

我有一个表单输入元素并想更改其标题属性。这必须像馅饼一样容易,但由于某种原因,我找不到如何做到这一点。这是如何完成的,我应该在哪里以及如何搜索如何做到这一点?

【问题讨论】:

    标签: jquery forms attributes


    【解决方案1】:

    作为@Cᴏʀʏ 答案的补充,请确保尚未在 HTML 元素中手动设置工具提示的标题。在我的例子中,工具提示的 span 类已经有一个固定的标题文本,因此我的 JQuery 函数 $('[data-toggle="tooltip"]').prop('title', 'your new title'); 不起作用。

    当我删除 HTML span 类中的 title 属性时,jQuery 正在工作。

    所以:

    <span class="showTooltip" data-target="#showTooltip" data-id="showTooltip">
          <span id="MyTooltip" class="fas fa-info-circle" data-toggle="tooltip" data-placement="top" title="this is my pre-set title text"></span>
    </span>
    

    应该编码:

    <span class="showTooltip" data-target="#showTooltip" data-id="showTooltip">
          <span id="MyTooltip" class="fas fa-info-circle" data-toggle="tooltip" data-placement="top"></span>
    </span>
    

    【讨论】:

      【解决方案2】:

      在 jquery ui 模态对话框中你需要使用这个结构:

      $( "#my_dialog" ).dialog( "option", "title", "my new title" );
      

      【讨论】:

      • 救命稻草!!使用上面的投票答案时,标题会更改一次,然后标题不会更改,除非您在对话框中使用标题选项!非常感谢!
      • 很高兴我阅读了 cmets ;-) 如果您需要多次更改标题,则必须在对话框选项中进行设置。
      • 从来没有想过这会被接受这么多次。我很高兴它有帮助:-)
      • 非常感谢。只是想添加您必须先以通常的方式初始化对话框,然后使用这行代码。我不清楚,所以希望对其他人有所帮助。
      【解决方案3】:

      如果您正在创建 div 并尝试向其中添加 title。

      试试

      var myDiv= document.createElement("div");
      myDiv.setAttribute('title','mytitle');
      

      【讨论】:

        【解决方案4】:

        我相信

        $("#myElement").attr("title", "new title value")
        

        或

        $("#myElement").prop("title", "new title value")
        

        应该做的伎俩...

        我认为您可以在jQuery Docs 中找到所有核心功能,尽管我讨厌这种格式。

        【讨论】:

          【解决方案5】:
          jqueryTitle({
              title: 'New Title'
          });
          

          第一个标题:

          jqueryTitle('destroy');
          

          https://github.com/ertaserdi/jQuery-Title

          【讨论】:

          • 这个问题可以通过使用jquery库本身来解决。您应该只在 OP 提到它时提及使用 3rd-party library,否则如果不使用 3rd-party library 就无法完成。
          • 是的,但还有其他功能。简单但不错的解决方案...您可以检查...
          • 第 3 方库会有 http 传输开销,使用 stock/native 方法可以避免。
          • 另外,已经有一个被广泛接受的更有效的答案。
          【解决方案6】:

          在我们编写任何代码之前,让我们讨论一下属性和属性之间的区别。属性是您应用于 HTML 标记 中元素的设置;然后浏览器解析标记并创建各种类型的 DOM 对象,其中包含用属性值初始化的 properties。在 DOM 对象上,例如一个简单的 HTMLElement,您几乎总是希望使用它的 properties,而不是它的 attributes 集合。

          当前的最佳做法是避免使用属性,除非它们是自定义的或没有等效的属性来补充它。由于title 确实在许多HTMLElements 上作为读/写属性 存在,我们应该利用它。

          您可以阅读更多关于属性和属性here 或here 之间的区别。

          考虑到这一点,让我们操纵title...

          获取或设置元素的title 属性无需 jQuery

          ​​>

          由于title 是公共属性,您可以使用纯 JavaScript 将其设置在任何支持它的 DOM 元素上:

          document.getElementById('yourElementId').title = 'your new title';
          

          检索几乎相同;这里没什么特别的:

          var elementTitle = document.getElementById('yourElementId').title;
          

          如果您是优化狂,这将是更改标题的最快方法,但既然您希望 jQuery 参与其中:

          使用 jQuery (v1.6+) 获取或设置元素的 title 属性

          jQuery 在 v1.6 中引入了一种新方法来获取和设置属性。要在元素上设置 title 属性,请使用:

          $('#yourElementId').prop('title', 'your new title');
          

          如果您想检索标题,请省略第二个参数并捕获返回值:

          var elementTitle = $('#yourElementId').prop('title');
          

          查看 jQuery 的 prop() API documentation。

          如果您真的不想使用属性,或者您使用的是 v1.6 之前的 jQuery 版本,那么您应该继续阅读:

          使用 jQuery 获取或设置元素的 title属性(版本

          您可以使用以下代码更改title 属性:

          $('#yourElementId').attr('title', 'your new title');
          

          或者通过以下方式检索它:

          var elementTitle = $('#yourElementId').attr('title');
          

          查看 jQuery 的 attr() API documentation。

          【讨论】:

          • 如果这不是一个结构良好的答案,那就没有。并且它是准确的,因为它结构良好。 +1...(哦,你的名字也很棒,因为它是我的 :) 甚至拼写一样!)
          • @VoidKing:我倾向于重新审视当前流行的答案(我只有几个)。如果我正在研究或发布问题,我会尝试提供我希望找到的所有内容。很高兴你找到它!
          • @Cory 好吧,老实说,因为我正在寻找其他东西(这是一个很长的目标,但正在寻找是否有任何方法来设置默认 HTML 标题框的样式)。我没有找到我要找的东西,但真的很佩服你在这个答案中付出的努力(你展示了资源、纯 .js 和 jQuery 等)。无论如何,很好的答案!
          • @VoidKing:这可能是一个错误的答案,但是如果您谈论的是当您将鼠标悬停在具有 alt 或 title 属性的项目上时出现的默认工具提示,那么this answer 可能会给出你有一些见解。
          • @Cory 谢谢你,先生!
          【解决方案7】:

          如果您愿意,另一种选择是从 jQuery 对象中获取 DOM 元素并在其上使用标准 DOM 访问器:

          $("#myElement")[0].title = "new title value";
          

          其他人提到的“jQuery方式”是使用attr()方法。请参阅 attr() here 的 API 文档。

          【讨论】:

            猜你喜欢
            • 2012-06-19
            • 2018-03-29
            • 1970-01-01
            • 2016-06-25
            • 1970-01-01
            • 1970-01-01
            • 2018-09-30
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多