Как изменить заголовок div с помощью 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>
Ответы
Ответ 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");
}
}
});
Ответ 2
Вы можете напрямую изменить заголовок диалога:
$('#DivPassword').dialog('option', 'title', 'Photo by Kelly Clark');
Это будет работать в вашем случае. Фактически, ваш код для изменения атрибута title правильный. Я предполагаю, что диалоговый плагин создает диалог, когда сначала вызывается .dialog. Открытый метод просто отображает диалоговое окно, но без повторного создания его из div.
Ответ 3
Вы можете изменить ЛЮБОЙ атрибут из любого элемента DOM с помощью jQuery так же просто, как:
$("#divMessage").attr('title', 'Type here the new Title text');
Ура!
Ответ 4
Вы пробовали какие-либо предложения, приведенные здесь:
Как изменить атрибут title элементов с помощью jQuery?
Похоже, вы делаете то, что предлагает принятый ответ. Если это не сработает, возможно, другие будут.
Ответ 5
$("#div1").dialog({ autoOpen: false, modal: true, height: 420, width: 750, resizable: false });
// more code
$("#div1").dialog("option", "title", "joopla, here is a new title");
сделал трюк для меня..
Ответ 6
Похоже, ваш плагин читает заголовок, прежде чем он перейдет к этой функции 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')
;
Ответ 7
Попробуйте установить атрибут title после открытия диалога. Вероятно, ваш dialog.open() будет сбросить атрибут title.
Я думаю, вы можете предоставить функцию обратного вызова для открытого события.
См. open
Ответ 8
Задает заголовок диалога. название также может быть определено атрибут title в источнике диалога элемент.
Примеры кода
Инициализируйте диалог с указанным параметром title.
$( ".selector" ).dialog( { title: 'Dialog Title' } );
Получить или установить параметр title после init.
//getter
var title = $( ".selector" ).dialog( "option", "title" );
//setter
$( ".selector" ).dialog( "option", "title", 'Dialog Title' );
источник.
чтобы ответить на ваш the dialog doesnt show any title
.
Ответ 9
Я сделал это:
$("#div1").dialog({ autoOpen: false, modal: true, height: 420, width: 750, resizable: false });
//more code
$("#div1").dialog("option", "title", "joopla, here is a new title");
Это работает для меня