2011-08-23 2 views
5

मैं jQuery के साथ एक Ajax अनुरोध बोल रहा हूँ कारण बनता है।परिवर्तित एचटीएमएल एक वस्तु में ajax अनुरोध से लौटे अजीब जटिलताओं

वापस किया गया एचटीएमएल कोड लगता है:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl"> 
<head> 
    <title>Title</title> 
    <meta http-equiv="content-type" content="application/xhtml+xml; charset=utf-8" /> 
    <meta name="description" content="Mobilna wersja serwisu GoldenLine." /> 
    <meta name="keywords" content="praca, networking, forum, blog, bran?a" /> 
    <link rel="stylesheet" type="text/css" href="http://css.goldenline.pl/mobile.css" /> 
    <link rel="shortcut icon" href="http://x/favicon.ico" /> 
</head> 
<body> 
    <h1><a id="h" href="http://x/"><img src="http://x/img/mobile.gif" alt="GoldenLine" /></a></h1> 
    <h2>Moje grupy</h2> 
    <ul> 
     <li> 
      <img src="http://x/img/ico-post.png" alt="" /> 
      <a href="http://x/forum/estimating-software">estimating software</a> 
     </li> 
     <li> 
      <img src="http://x/img/ico-post.png" alt="" /> 
      <a href="http://x/forum/google-hacking">Google hacking</a> 
     </li> 
     <li> 
      <img src="http://x/img/ico-post.png" alt="" /> 
      <a href="http://x/forum/google-plus">Google Plus</a> 
     </li> 
     <li> 
      <img src="http://x/img/ico-post.png" alt="" /> 
      <a href="http://x/forum/praca-dla-informatykow">IT – Praca dla osób z...</a> 
     </li> 
     <li> 
      <img src="http://x/img/ico-post.png" alt="" /> 
      <a href="http://x/forum/jezyki-skryptowe">Języki Skryptowe</a> 
     </li> 
     <li> 
      <img src="http://x/img/ico-post.png" alt="" /> 
      <a href="http://x/forum/netcamp">Netcamp</a> 
     </li> 
    </ul> 
    <p class="setAsRead"><a href="http://x/fora/ozn">Ozn</a></p> 
    <form method="get" action="http://x/szukaj"> 
     <input type="text" name="q" /> 
     <input type="submit" value="Szukaj" /> 
    </form> 
    <ul> 
     <li>1. <img src="http://x/img/msg_box_ico.gif" alt="" /> <a href="http://x/skrzynka" accesskey="1">Skrzynka [0]</a></li> 
     <li>2. <a href="http://x/kontakty" accesskey="2">Kontakty</a></li> 
     <li>3. <a href="http://x/forum" accesskey="3">Moje grupy</a></li> 
     <li>4. <a href="http://x/wylogowanie" accesskey="4">Wyloguj</a></li> 
    </ul> 
    <div class="footer"> 
     <p>2010 &copy; Goldenline.pl | <a href="http://x/www">przejdź do normalnej wersji serwisu</a></p> 
    </div> 
</body> 
</html> 

लेकिन जब मैंने उसे एक वस्तु

$(data) 

मैं कुछ इस तरह मिल गया में तब्दील:

[ 
<!--?xml version="1.0" encoding="UTF-8"?-->, 
Text, 
<title>?GoldenLine.pl?</title>?, 
Text, 
<meta http-equiv=?"content-type" content=?"application/?xhtml+xml;? charset=utf-8">?, 
Text, 
<meta name=?"description" content=?"Mobilna wersja serwisu GoldenLine.">?, 
Text, 
<meta name=?"keywords" content=?"praca, networking, forum, blog, bran?a">?, 
Text, 
<link rel=?"stylesheet" type=?"text/?css" href=?"http:?/?/?css.goldenline.pl/?mobile.css">?, 
Text, 
<link rel=?"shortcut icon" href=?"http:?/?/?m.goldenline.pl/?favicon.ico">?, 
Text, 
<h1>?…?</h1>?, 
Text, 
<h2>?Moje grupy?</h2>?, 
Text, 
<ul>?…?</ul>?, 
Text, 
<p class=?"setAsRead">?…?</p>?, 
Text, 
<form method=?"get" action=?"http:?/?/?m.goldenline.pl/?szukaj">?…?</form>?, 
Text, 
<ul>?…?</ul>?, 
Text, 
<div class=?"footer">?…?</div>?, 
Text, 
<script type=?"text/?javascript">?…?</script>?, 
Text 
] 

क्या मैं करने के लिए क्या करना चाहिए कोड के इस टुकड़े में <ul> तत्व अजाक्स अनुरोध से लौट आए?

उत्तर

7

मुझे लगता है कि आपको पहले एक HTML तत्व में वापस HTML डेटा डालना चाहिए।

var mytag=$('<div></div>').html(data); 

अब jQuery का उपयोग करके आप सभी उल नोड्स निकाल सकते हैं।

$('ul',mytag); 

यह सभी उल टैग की सरणी वापस कर देगा।

+0

निश्चित रूप से - यह इस मामले में काम करता है, लेकिन अगर मैं किसी अन्य वेबपृष्ठ के एचटीएमएल कोड को किसी ऑब्जेक्ट में परिवर्तित करता हूं, तो यह ठीक काम करता है - लेकिन साथ नहीं ये मामला। Div में पूरे एचटीएमएल पैकिंग थोड़ा कठोर तरीका है। – hsz

+0

ठीक है, मैंने इसके लिए दूसरा मौका दिया और यह अच्छी तरह से काम करता है;) – hsz

+0

प्रिय एचएसजे ... 'उल' टैग खोजने के लिए आपका दृष्टिकोण सही था। लेकिन जैसा कि आपने बताया था कि यह एक मामले में काम कर रहा था, न कि अन्य मामले में। मुझे कारण स्पष्ट करने दें। कारण था- जब आप jQuery (डेटा) का उपयोग करके ऑब्जेक्ट करते हैं तो यह नोड्स का पदानुक्रम बनाता है, और जब आपको 'उल' जैसे कुछ नोड मिलते हैं, तो यह रूट तत्वों को छोड़कर पूरे पदानुक्रम में खोज करता है, और हमारे 'उल' टैग मूल तत्व थे । यदि आप बच्चे के तत्वों को खोजते हैं, तो परिणाम सकारात्मक होंगे। तो आपके तरीके में समाधान हो सकता है - jQuery ('

') .append (jQuery (डेटा))। ('ul') ढूंढें और यह आपको फिर से सही परिणाम देगा। – vicky

1

आपका रिटर्न प्रारूप html नहीं है, जो मुझे जेएसओएन की तरह दिखता है।

$.get(url, function(data){ 
    $(data).find('ul'); 
}, "html"); 

अगला बात मैं करना चाहता हूँ द्वारा एचटीएमएल लागू करने के लिए प्रयास करें क्या सर्वर प्रतिक्रिया की सामग्री प्रकार है (FireBug या कुछ इसी तरह का प्रयोग करके) को देखने के लिए है। इसे text/html कहना चाहिए। यदि नहीं, तो समस्या शायद आपके पिछली छोर पर है, यह सुनिश्चित करने की आवश्यकता है कि यह सामग्री-प्रकार को सही तरीके से सेट करे।

सामग्री-प्रकार ठीक है, तो यह मेरी मशीन पर कोशिश की है, तो यह jQuery.get में html लागू किए बिना एक आकर्षण की तरह काम करता है।

+0

यह काम नहीं करता है - अभी भी वही परिणाम। – hsz

+0

@hsz: मेरा संपादन देखें, क्या यह मदद करता है? – emboss

+0

मैंने अनुरोध के दौरान सामग्री-प्रकार सेट करने का प्रयास किया है लेकिन इससे मदद नहीं मिली - यह पहले जैसा ही काम करता है। 'user907376' समाधान काम करता है लेकिन यह जाने का बहुत कठिन तरीका है। – hsz

संबंधित मुद्दे