如何使用jQuery更改元素的title属性

Bri*_*ian 225 forms jquery attributes

我有一个表单输入元素,并希望更改其title属性.这必须很容易,但由于某种原因,我找不到如何做到这一点.这是怎么做的,我应该在哪里以及如何搜索如何做到这一点?

Cᴏʀ*_*ᴏʀʏ 444

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

目前的最佳做法是避免使用属性,除非它们是自定义的,或者没有相应的属性来补充它.由于title确实作为许多s 的读/写属性存在HTMLElement,我们应该利用它.

您可以在此处此处详细了解属性和属性之间的差异.

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

没有 jQuery 的情况下获取或设置元素的title属性

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

document.getElementById('yourElementId').title = 'your new title';
Run Code Online (Sandbox Code Playgroud)

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

var elementTitle = document.getElementById('yourElementId').title;
Run Code Online (Sandbox Code Playgroud)

如果你是一个优化问题,这将是改变标题的最快方法,但是因为你想要jQuery参与:

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

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

$('#yourElementId').prop('title', 'your new title');
Run Code Online (Sandbox Code Playgroud)

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

var elementTitle = $('#yourElementId').prop('title');
Run Code Online (Sandbox Code Playgroud)

查看jQuery 的prop()API文档.

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

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

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

$('#yourElementId').attr('title', 'your new title');
Run Code Online (Sandbox Code Playgroud)

或者检索它:

var elementTitle = $('#yourElementId').attr('title');
Run Code Online (Sandbox Code Playgroud)

查看jQuery 的attr()API文档.

  • 如果这不是一个构造良好的答案,那么没有.并且它的结构非常精确.+1 ...(哦,你的名字也很棒,因为它是我的:)甚至拼写相同!) (4认同)

Igo*_* L. 30

在jquery ui模式对话框中,您需要使用此构造:

$( "#my_dialog" ).dialog( "option", "title", "my new title" );
Run Code Online (Sandbox Code Playgroud)

  • 救命稻草!当使用上面的投票答案时,标题会被更改一次,之后标题不会改变,除非您在对话框中使用标题选项!非常感谢! (3认同)

wom*_*omp 15

我相信

$("#myElement").attr("title", "new title value")
Run Code Online (Sandbox Code Playgroud)

要么

$("#myElement").prop("title", "new title value")
Run Code Online (Sandbox Code Playgroud)

应该做的诀窍......

我想你可以找到jQuery Docs中的所有核心功能,虽然我讨厌格式化.


Gre*_*ell 7

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

$("#myElement")[0].title = "new title value";
Run Code Online (Sandbox Code Playgroud)

其他人提到的"jQuery方式"是使用attr()方法.请在此处查看attr()的API文档.