以下是从现有HTML模板生成jQuery UI对话框的代码。
我想从HTML中提取title属性,并将其用作jQuery UI对话框方法的title参数。
我尝试了children().first(), find(">:first-child")
等,但没有任何效果。
titleStr只是未定义。
function define_Window() {
// constructor of class Window
MyNS.Window = function (path_html) {
this.DIV = $("<div/>").load(path_html);
var titleStr = this.DIV.children().first().attr("title");
// To test if DIVs are well appended
this.DIV2 = $("<div/>").attr("name", "Form").load(path_html);
$(MyNS.Windows).append(this.DIV2);
this.DLG = this.DIV.dialog({
title: titleStr
});
模板HTML文件如下所示:
<div title="THIS IS TITLEEEEEE!!!!">
<p>Description goes here</p>
<form>
<fieldset>
<label for="">blahblahblah
答案 0 :(得分:1)
我认为在你的情况下你不需要孩子,试试这个:
首先,您选择this.DIV = $("div")
所以,这将返回元素数组。您可以使用以下选项来选择第一个:
var first_div = this.DIV.eq(0)
// Now you can select its title:
first_div.attr('title');
答案 1 :(得分:1)
你试过吗
var titleStr = "";
this.DIV = $("<div/>").load(path_html, function complete(responseText, textStatus, XMLHttpRequest) {
titleStr = $("div").first.attr("title");
} );
解释:load
通过异步ajax请求获取模板。因此,当您在代码中查询时,带有标题的div可能不可用。
闭包代码采用the jquery api spec for load
使用的调用签名。