感谢您的时间
我有以下jquery ui对话框
$(function() {
$( ".dialog" ).dialog({
title: $(this).attr('name')+'WHYYY',
autoOpen: false,
show: "blind",
hide: "explode"
});
html很简单:
<div class="dialog" style="" id="helper" name="helper">
<textarea id="helper_e" name="helper_e">
some text
</textarea>
</div>
<!--and so on with multiple dialog classes with different id's and name's-->
意图将名称作为标题。
它不起作用,在标题中输出以下内容:
UNDEFINEDWHYYY
为什么呢?谢谢你的提示
答案 0 :(得分:3)
因为this
没有像您预期的那样引用div.dialog
。它指的是window.document
。你应该像这样重写它:
$(function() {
$('.dialog').each(function() {
var props = {
title: $(this).attr('name')+'WHYYY',
autoOpen: false,
show: "blind",
hide: "explode"
};
$(this).dialog(props);
});
});
答案 1 :(得分:0)
this
在您尝试使用它的上下文中没有正确的值。
假设您无法添加标题attr,您可以遍历.dialog选择器中的项目并以编程方式添加标题attr。
$( ".dialog" )
.each(function () {
$(this).attr('title', $(this).attr('name')+'WHYYY');
})
.dialog({
autoOpen: false,
show: "blind",
hide: "explode"
});