如何使用jquery更改div标题

时间:2010-04-23 06:37:13

标签: jquery

我有以下代码:

<div id="DivPassword" title="test" > 

我想更改div标题,我有以下代码:

 function ChangeAttribute() {
         $("#DivPassword")
            .attr('title', 'Photo by Kelly Clark');
         $('#DivPassword').dialog('open');
         return false;
     }

打开对话框时,标题仍在测试中!如果我没有为div分配任何标题,则对话框不显示任何标题。我该如何纠正?


 function ChangeAttribute() {
         $("#DivPassword")
            .attr('title', 'Photo by Kelly Clark')
            .dialog('open');

         alert($("#DivPassword").attr('title'));
     }

$('#DivPassword').dialog({
             autoOpen: false,
             width: 800,
             buttons: {
                 "Cancel": function() {
                     $(this).dialog("close");
                 },
                 "Accept": function() {
                 alert($(this).attr('title'));
                     $(this).dialog("close");
                 }
             }
         });

 <script type="text/javascript">
     var Dtitle;
     $(function() {
        $('#DivPassword').dialog({

             autoOpen: false,
             width: 800,
             title : Dtitle,
             buttons: {
                 "Cancel": function() {
                     $(this).dialog("close");
                 },
                 "Accept": function() {
                     $(this).dialog("close");
                 }
             }
         });
     });

     function ChangeAttribute(name) {
         $("#DivPassword")
            .attr('title', name)
            .dialog('open');
         Dtitle = $("#DivPassword").attr('title');
         alert(Dtitle);
     }


</script>

9 个答案:

答案 0 :(得分:23)

您可以直接使用以下方式更改对话框的标题:

$('#DivPassword').dialog('option', 'title', 'Photo by Kelly Clark');

这适用于您的情况。实际上,更改title属性的代码是正确的。我想对话插件会在首先调用.dialog时创建对话框。 open方法只显示对话框,而无需从div重新创建它。

答案 1 :(得分:10)

您可以使用jQuery从任何DOM元素更改任何attr:

$("#divMessage").attr('title', 'Type here the new Title text');

干杯!

答案 2 :(得分:1)

您是否尝试过此处提供的任何建议: How to change an element’s title attribute using jQuery

看起来你正在接受所接受的答案。如果这不起作用,也许其他人会这样做。

答案 3 :(得分:1)

感谢所有答案。

$('#DivPassword').dialog({必须在.dialog('open');

之后

最简单的方法是:

 $("#DivPassword")
            .dialog('open');
         $('#DivPassword').dialog({
             autoOpen: false,
             title: $('#DivPassword').attr('title') + name,
             width: 400,
             buttons: {
                 "Cancel": function() {
                     $(this).dialog("close");
                 },
                 "Accept": function() {
                     $(this).dialog("close");
                 }
             }
         });

答案 4 :(得分:1)

$("#div1").dialog({ autoOpen: false, modal: true, height: 420, width: 750, resizable: false });
// more code
$("#div1").dialog("option", "title", "joopla, here is a new title");

为我做了诀窍......

答案 5 :(得分:0)

听起来你的插件在获得ChangeAttribute函数之前正在读取标题。您发布的代码肯定会更改title属性,因此幕后会发生其他事情。

此外,虽然我在这里,但不要忘记使用链接。 jQuery中的大多数函数再次返回相同的对象:

$("#DivPassword").attr('title', 'Photo by Kelly Clark').dialog('open');

// or like this, perhaps easier to read:

$("#DivPassword")
    .attr('title', 'Photo by Kelly Clark')
    .dialog('open')
;

答案 6 :(得分:0)

在对话框打开后尝试设置title属性。可能你的dialog.open()将重置title属性。

我认为您可以为open事件提供回调函数。

参见 open

答案 7 :(得分:0)

  

指定对话框的标题。该   标题也可以由   对话框源上的title属性   元件。

代码示例

初始化一个带有指定标题选项的对话框。

$( ".selector" ).dialog( { title: 'Dialog Title' } );

在初始化后获取或设置标题选项。

//getter
var title = $( ".selector" ).dialog( "option", "title" );
//setter
$( ".selector" ).dialog( "option", "title", 'Dialog Title' );

source

回答您的the dialog doesnt show any title

答案 8 :(得分:0)

我这样做了:

$("#div1").dialog({ autoOpen: false, modal: true, height: 420, width: 750, resizable: false });
//more code
$("#div1").dialog("option", "title", "joopla, here is a new title");

这对我有用