2016-11-15 5 views
1

と値が含まれていることを、私は2つの機能を持っている取得jQueryのデータ - スペース

"<input type=\"image\" + " data-file_name=" + result.fileName/>" 

素晴らしい作品が、私はしようとしているときdata-file_name valueに空白が含まれている場合、その値を取得します。最初の単語を取得します(たとえば、data-file_name= "The book blue"を取得した場合はの場合はとなります)data-file_name = "Red Dragon" これは、2番目の関数の値を取得する方法です。

var fileName = $(this).data("file_name"); 

したがってfileName variableは空白の後ろに何も含まれていないため、実際の値は得られません。空白などすべてを含む値を取得するために使用する必要がありますか?

+0

これを試してください:var fileName = $(this).attr( "data-file_name"); – Ali7091

+2

連結問題があります。 "+"入力タイプ= \ "イメージ\"データタイプ= \ "" + result.fileName + "\" /> "' – Robiseb

+0

@Robisebで置き換えてください。それは今働いてください:) – AlexGH

答えて

1

連結問題があります。

あなたが作成している何本

"<input type=\"image\" data-file_name=\"" + result.fileName + "\" />" 
+0

また、ES6では、テンプレート文字列を使用して、以下を実行することができます: ''はるかにクリーンなアプローチですが、ユーザーベースとアプリケーションによっては、ES6が選択肢ではないかもしれません。ドキュメント:https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Template_literals –

1

と交換は有効な構文ではありません。

// Invalid Syntax: 
<input type="image" data-red dragon="" /> 

テンプレート、あるいはサーバーを経由して、この入力を生成

は、マークアップは、データ属性にスペースを持つことはできません。それはいくつかのカスタマイズを可能にします。スペースで失敗するのは、データ属性に "Red"を結んでいるが、 "Dragon"を別の属性として扱っているためです。本質的には

、これが作成されている:

<input type="image" data-red="" dragon="" /> 
<input type="image" data-red="" /> 

はどちらも、あなたが意図したものではありません。そのデータ属性を正しく構築するには、領域を削除する必要があります。あなたの別のオプションは、データ属性ではなく、ファイル名を値として配置することです。例えば:私は@FileNameを配置した場所

<input type="image" data-filename="@FileName" /> 

もちろん、あなたが生成するために、どのようなアプローチを使用します。また、一重引用符を使用して二重引用符を物理的に使用すると、JavaScriptの連結を簡単にすることができます。

関連する問題