2010-02-12 2 views
2

Я пытаюсь проанализировать простой XML-документ с помощью jQuery. Кто-нибудь знает, почему следующее работает отлично в Chrome и Firefox, но не в Internet Explorer (7 и 8)?Internet Explorer jquery: содержит номер

var selBunit = $("#bunit").val(); 
$(bunitXml).find('bunit bname:contains('+selBunit+')').parent().find('team') 

Ниже приведен фрагмент xml. Поэтому в основном я пытаюсь вернуть все элементы «команды» для выбранной бизнес-единицы («bunit»).

<bunit> 
<bname>Unit 1</bname> 
<teams> 
    <team> 
     <name>Team 1</name> 
     <jobtitles> 
      <jobtitle approval="false">Jobtitle 1</jobtitle> 
     </jobtitles> 
    </team> 
    <team> 
     <name>Team 2</name> 
     <jobtitles> 
      <jobtitle approval="false">Jobtitle 2</jobtitle> 
     </jobtitles> 
    </team>       
</teams> 
</bunit> 

Сначала я попытался

$(bunitXml).find('bunit bname:contains($("#bunit").val())').parent().find('team') 

, который не работает на всех. После некоторых поисковых запросов я пробовал следующее:

var selBunit = $("#bunit").val(); 
$(bunitXml).find('bunit bname:contains('+selBunit+')').parent().find('team') 

, который возвращает все элементы команды в Chrome и Firefox, но не в Internet Explorer. Я не могу обдумать это. Я довольно новичок в jQuery, поэтому я мог бы сделать это совершенно неправильно, поэтому любые предложения будут оценены. Благодаря кучу

ответ

0
var selBunit = $("#bunit").val(); 
$(bunitXml).find('bunit bname:contains('+selBunit+')').parent().find('team') 

Если я м понимание хорошо, selBunit является строкой, так что вы должны использовать:

var selBunit = $("#bunit").val(); 
$(bunitXml).find("bunit bname:contains('"+selBunit+"')").parent().find('team') 

или

$(bunitXml).find("bname:contains('" +selBunit+ "')").find('team');