-2

次のいずれかの拡張子を持つファイルがあります。

.doc or .docx

このようにリンクしたかったのです:

document.getElementById("file").innerHTML = "View file sent <a href='../folder/filename" +
(what syntax do I need to add here if I wanted to print which extention file is exist on that folder)

PHPではこれを行うことができます

var1 = ".doc";
var2 = ".docx";

var1 ? var1 : var2;

JavaScriptでこれに相当するものは何ですか?

4

5 に答える 5

3

JavaScriptの3次演算子

JavaScriptには3次演算子が存在します。

var var1=".doc";
var var2=".docx";

alert(var1 ? var1 : var2);​

証明: http: //jsfiddle.net/gRMf2/

これは次のように機能します(jsfiddle):

alert(var1 ? var1 : var2);​

未定義の変数の操作

ただし、var1定義されていない可能性がある場合は、エラーが発生します(証明:jsfiddle)。そのような場合、これを書くことで問題が解決します(証明:jsfiddle):

alert(typeof var1 !== 'undefined' ? var1 : var2);​
于 2012-08-20T01:48:03.460 に答える
3

javascriptでは、var1 || var2phpと同じvar1 ? var1 : var2です。

document.getElementById("file").innerHTML = "View file sent <a href='../folder/filename" + (var1 || var2);
于 2012-08-20T01:48:14.863 に答える
2

JavaScriptはファイルシステムにアクセスできません。たとえそうだったとしても、それはエンドユーザーのローカルファイルシステムになります。ファイルがPHP(または使用するサーバー側の言語)に存在することを確認する必要があります。

于 2012-08-20T01:52:59.713 に答える
1

ここで何をしているのかわかりません:

var1=".doc";
var2=".docx";

var1? var1 : var2;

PHPとJavascriptのどちらを使用しているかに関係なく、var1は常にtrueと評価されるため、これは常に「.doc」を返します。


代わりに、次のようなものを探しているようです。

// this function is from http://stackoverflow.com/a/3646923/1188942
function UrlExists(url)
{
    var http = new XMLHttpRequest();
    http.open('HEAD', url, false);
    http.send();
    return http.status!=404;
}

var ext;
if (UrlExists("http://www.mywebsite.com/folder/file.doc"))
    ext = ".doc";
else
    ext = ".docx";
于 2012-08-20T01:49:27.903 に答える
0

これはJavascriptでも非常によく似ています。

var doc = ".doc";
var docx = ".docx";
var ext = doc ? doc : docx;
alert(ext);
于 2012-08-20T01:50:50.607 に答える