0

jquery は初めてです。私は単純なxmlファイルを持っており、それを読んでhtmlページにうまく表示しています。ただし、xml の私のレコードの 1 つには、他のレコードにはない属性があります。すべてが名前と番号を持っていますが、1 つは名前、名前の種類、および番号を持っています。

このデータは問題なく読み取ることができますが、表示するのは難しいことがわかります。すべてのデータはcssスタイルのテーブルに入れられますが(非常にうまくいきます)、この追加の属性は改行を作成してセル内の2行目に表示したいのですが、他のすべてのレコードのセルは1行のままにします.

ここで私がやろうとしていることを見ることができます:

function BuildContactHTML(contactName,contactNumber,contactSE){

// Check to see if their is a "type" attribute in the name field
if ((contactType) != undefined){
    contactTypeHTML = "<br /><span class="sub">(" + contactType + ")</span>";
}
else
{
    contactTypeHTML = "";
}

// Build HTML string and return
output = '';
output += '<tr>';
output += '<td class="left">'+ contactName + contactType +'</td>';
output += '<td class="phone">'+ contactNumber +'</td>';
output += '</tr>';
return output;
}

「contactTypeHTML =」の行に改行を追加し、css でテキストのスタイルを設定してからセルを閉じたいので、スパン クラス「サブ」が処理している小さいタイプで名前の下に属性を効果的に取得します。これらのタグを出力文字列に入れると、すべてのレコードに対して 2 行目が作成されますが、実際に属性を持つレコードに影響を与えたいだけで、残りにはテキストがまったくありません。

どんな助けでも大歓迎です!繰り返しますが、私はかなり新しいので、シンプルにしてください。私はここに構文の問題があるという印象を受けています。

4

1 に答える 1

1

Undefinedは文字列値である必要があり、contactTypeの周りにtypeof演算子が必要です

if (typeof(contactType) != "undefined"){}

typeof()演算子は文字列値を返すため、文字列と比較する必要があります。

あなたのコードは、contactTypeが存在しないオブジェクトと等しくないかどうかをチェックしています。これは、二重否定であるため、常にtrueを返します。

また、この行では、二重引用符だけでなく、一重引用符と二重引用符を使用する必要があります。一重引用符の内側の「サブ」を二重引用符で囲む必要があります。

contactTypeHTML = '<br /><span class="sub">(' + contactType + ')</span>';
于 2012-05-06T13:42:49.327 に答える