2011-08-09 8 views
0

こんにちは私はjqueryを使用してXMLファイルを解析する必要があります。私は読み取りと表示の機能を作成しました。しかし、一重引用符を持つ単語が機能しないとき。jqueryの問題を使用してxmlファイルから一重引用符を持つ単語

私のXMLは、私がグーグルの定義を読むことができる私のjqueryのコードを使用して、この

<container> 
<data name="Google" definition="A search engine"/> 
<data name=" Mozilla's " definition="A web browser"/> 
</ container> 

のようなものです。しかし、私はその単一引用符のためにMozillaの定義を読むことはできません。これは私のjqueryコードです。

 

    var displayDefinition = function(obj){ 
     $.get("definitions.xml", function(data){ 
     xml_data1.find("data[name^='"+obj.innerHTML+"']").each(function(k, v){ 


    right='

'+ $(this).attr("Defination") + '

'; } } $(".result").append(right); }

いずれのボディもこの解決策を知っています。 ありがとう

答えて

1

jQueryは一重引用符を非常によく扱います。あなたの関数の構造は本当に野生的に見えます。あなたは必ずあなたの「name」属性がで始めたり終わらない確認する必要があり、http://jsfiddle.net/rkw79/VQxZ2/

function display(id) { 
    $('container').find('data[name="' +id.trim()+ '"]').each(function() { 
     var right = $(this).attr("definition"); 
     $(".result").html(right); 
    }); 
} 

注:私はあなたがそれに名前を渡すことに基づいて定義を表示することができます関数を作成したいと仮定すると、大きなそれを変更しましたスペース;ユーザーが渡す文字列をトリムするだけです。

+0

ヘイは機能しません。 id.trim()を与えた理由を教えてください。関数呼び出しから、私は 'this'オブジェクトを渡しています。ですから、私はthis.innerHTMLを使ってliタグの値を取得する必要があります。 – learner

+0

トリムは、ユーザーが「google」ではなく「google」と入力した場合に備えています。 – rkw

+0

  • これは関数呼び出しです。 Googleの名前は何の問題もありません。名前がGoogleのようなものであれば問題になります。私はname = 'Google's'を検索する必要があります。この場合は動作していません。どんな解決策ですか? – learner

  • 関連する問題