2012-04-17 52 views
0

我已经使用jQuery填充了XML数据的select元素,这并不太困难。我现在试图找到一种方法来显示分配给它自己独立的div区域中select元素中特定元素的信息。这里是我的代码的一个exmaple到目前为止:使用jQuery/XML显示特定信息

$('.selectspeak').live('change', function() { 

       $("#mainOutput").empty(); 

       $(g_playDOM).find("SPEECH").each(function(){ 

        var speaker = $(".selectspeak").val(); 
        var line = $(this).find("LINE").text(); 

       $("#mainOutput").append("<div class='speakerClass'>" + "Speaker: " + speaker + "<br />" + " <div class='speakerClassLine'>" + "<br />" + "Line: " + line + "</div>"); 

      }); 

}); 

上面的代码基本上填充选择标签与扬声器数据,没有问题。但是在选择扬声器时,它只是将数据显示为正常,而不是分配给扬声器的数据。我如何确保只有分配的信息才会显示在选择扬声器上?

我一直试图破解这个坚果几个小时,现在几乎没有什么进展,所以在正确的方向微调将是太棒了! :-)

谢谢!

更新:我添加了一个链接到现场项目。只需在左边选择一个游戏,然后您就可以在右侧看到我正在谈论的选择元素。谢谢。

http://scmweb.infj.ulst.ac.uk/~B00351504/COM601/assignment_2/siab.html

月2日更新:

的要求XML的某些行:

<PLAY> 
<TITLE>The Merchant of Venice</TITLE> 
<FM> 
<P> 
ASCII text placed in the public domain by Moby Lexical Tools, 1992. 
</P> 
<P>SGML markup by Jon Bosak, 1992-1994.</P> 
<P>XML version by Jon Bosak, 1996-1999.</P> 
<P> 
The XML markup in this version is Copyright © 1999 Jon Bosak. This work may freely be distributed on condition that it not be modified or altered in any way. 
</P> 
</FM> 
<PERSONAE> 
<TITLE>Dramatis Personae</TITLE> 
<PERSONA>The DUKE OF VENICE.</PERSONA> 
<PGROUP> 
<PERSONA>The PRINCE OF MOROCCO</PERSONA> 
<PERSONA>The PRINCE OF ARRAGON</PERSONA> 
<GRPDESCR>suitors to Portia.</GRPDESCR> 
</PGROUP> 
<PERSONA>ANTONIO, a merchant of Venice.</PERSONA> 
<PERSONA>BASSANIO, his friend, suitor likewise to Portia.</PERSONA> 
<PGROUP> 
<PERSONA>SALANIO</PERSONA> 
<PERSONA>SALARINO</PERSONA> 
<PERSONA>GRATIANO</PERSONA> 
<PERSONA>SALERIO</PERSONA> 
<GRPDESCR>friends to Antonio and Bassanio.</GRPDESCR> 
</PGROUP> 
<PERSONA>LORENZO, in love with Jessica.</PERSONA> 
<PERSONA>SHYLOCK, a rich Jew.</PERSONA> 
<PERSONA>TUBAL, a Jew, his friend.</PERSONA> 
<PERSONA>LAUNCELOT GOBBO, the clown, servant to SHYLOCK.</PERSONA> 
<PERSONA>OLD GOBBO, father to Launcelot.</PERSONA> 
<PERSONA>LEONARDO, servant to BASSANIO.</PERSONA> 
<PGROUP> 
<PERSONA>BALTHASAR</PERSONA> 
<PERSONA>STEPHANO</PERSONA> 
<GRPDESCR>servants to PORTIA.</GRPDESCR> 
</PGROUP> 
<PERSONA>PORTIA, a rich heiress.</PERSONA> 
<PERSONA>NERISSA, her waiting-maid.</PERSONA> 
<PERSONA>JESSICA, daughter to SHYLOCK.</PERSONA> 
<PERSONA> 
Magnificoes of Venice, Officers of the Court of Justice, Gaoler, Servants to Portia, and other Attendants. 
</PERSONA> 
</PERSONAE> 
<SCNDESCR> 
SCENE Partly at Venice, and partly at Belmont, the seat of PORTIA, on the Continent. 
</SCNDESCR> 
<PLAYSUBT>THE MERCHANT OF VENICE</PLAYSUBT> 
<ACT> 
<TITLE>ACT I</TITLE> 
<SCENE> 
<TITLE>SCENE I. Venice. A street.</TITLE> 
<STAGEDIR>Enter ANTONIO, SALARINO, and SALANIO</STAGEDIR> 
<SPEECH> 
<SPEAKER>ANTONIO</SPEAKER> 
<LINE>In sooth, I know not why I am so sad:</LINE> 
<LINE>It wearies me; you say it wearies you;</LINE> 
<LINE>But how I caught it, found it, or came by it,</LINE> 
<LINE>What stuff 'tis made of, whereof it is born,</LINE> 
<LINE>I am to learn;</LINE> 
<LINE>And such a want-wit sadness makes of me,</LINE> 
<LINE>That I have much ado to know myself.</LINE> 
</SPEECH> 
+0

在jsfiddle.net上做一个例子在这里会有很大帮助。 – 2012-04-17 14:23:42

+0

我们也喜欢看到几行XML。 – 2012-04-17 14:40:07

回答

0

我认为你必须筛选选择了 “讲话” 的项目。

$('.selectspeak').live('change', function() { 

       $("#mainOutput").empty(); 

       $(g_playDOM).find("SPEECH").each(function(){ 

        var speaker = $(".selectspeak").val(); 
        //I'm checking if this 'SPEECH' is by "SPEAKER" 
        if($(this).find("SPEAKER").text()==speaker){ 


        var line = $(this).find("LINE").text(); 
        $("#mainOutput").append("<div class='speakerClass'>" + "Speaker: " + speaker + "<br />" + " <div class='speakerClassLine'>" + "<br />" + "Line: " + line + "</div>"); 
        } 



      }); 

});​ 

这里我检查了选择的“SPEECH”项是否是“扬声器”。

+0

但是,如果您可以使用类似XPath的东西,那就太好了。花了很长时间来加载这个大的XML!我认为这是行不通的! [link] http://www.w3schools.com/xpath/xpath_intro.asp – 2012-04-17 16:01:44

+0

非常感谢agentmilindu,这似乎已经完成了工作 - 而且它似乎是一个非常优雅的解决方案。也感谢XPath的建议,我同意这一点。 XML是由我的讲师制定的,有时需要很长时间才能加载。再次感谢你。 – 2012-04-17 16:05:38