0
當試圖通過XML進行迭代並找到並返回父級的子級時,我遇到了一些與.find()和.attr()(我認爲)的爭執。 attr(value)等於函數中傳遞的內容。JQuery/XML查找並返回1行
我有什麼做的,什麼是不可以在這裏看到的,是我有大約70複選框,這些複選框的ID是=到OAData的這塊XML
<OAData value='1'>
<OAid>OA1</OAid>
<BAC_Level_1>some text</BAC_Level_1>
<Basel_Level_1>some text</Basel_Level_1>
<Basel_Level_2>some text</Basel_Level_2>
<Risk_Category_Level_3>some text</Risk_Category_Level_3>
</OAData>
的期望價值結果:期望的結果是用戶點擊一個按鈕來提交運行函數createrow(),當他們這樣做時,它將檢查複選框是否被選中,如果是,它將只遍歷XML中的這些項目其中OAData值等於被檢查的框的值。
在哪裏,我認爲這個問題是:
$(xml_list).find('OAData').each(function() {
我不認爲我可以將其替換爲:
$(xml_list).find('OAData').each.attr('value')(function() {
我只是想找到OAData如果OAData值屬性等於函數傳遞的是什麼。
我可能在這種馬的情況之前在某種形式的購物車 - 我不僅僅是一點點。
在問題部分代碼:
<script type="text/javascript">
function buildrow(checkboxid) {
if(checkboxid === 'OA1'){ //This is the wrong way to go about this - need help here
function xml_parser(wrapper) {
//Construct and display preloader
$('<div id="preload_xml"></div>').html('<img src="images/ajax-loader.gif" alt="loading data" /><h3>Loading Data...</h3>').prependTo($('body'));
//Hide Content (this is sloppy but easy to customize..)
$(wrapper).hide();
//Get XML Data
$.ajax({
type: 'GET',
url: 'xml/OA.xml',
dataType: 'xml',
success: function(xml_list) {
//Remove preloader HTML & show data
$('#preload_xml').remove();
$(wrapper).show();
var xmlArr = [];
$(xml_list).find('OAData').each(function() {
var xml_OAval = $(this).attr('OAval');
var xml_OAid = $(this).find('OAid').text();
var xml_BAC_Level_1 = $(this).find('BAC_Level_1').text();
var xml_Basel_Level_1 = $(this).find('Basel_Level_1').text();
var xml_Basel_Level_2 = $(this).find('Basel_Level_2').text();
var xml_Risk_Category_Level_3 = $(this).find('Risk_Category_Level_3').text();
// Add matched items to an array
xmlArr += '<tr filterCriteria="';
xmlArr += xml_OAval;
xmlArr += '"><td>';
xmlArr += xml_OAid;
xmlArr += '</td><td>';
xmlArr += xml_BAC_Level_1;
xmlArr += '</td><td>';
xmlArr += xml_Basel_Level_1;
xmlArr += '</td><td>';
xmlArr += xml_Basel_Level_2;
xmlArr += '</td></tr>';
}); // end each loop
//Append array to table (this way is much faster than doing this individually for each item)
$(xmlArr).appendTo(wrapper +' table tbody');
} // end post AJAX call operaitons
}); // end AJAX
} // end function
//Function Call
var wrapper = '#xml_wrapper'; // Id of wrapper
xml_parser(wrapper);
}
}
</script>
</head>
<body>
<div id="xml_wrapper">
<h1 id="title">My Title</h1>
<h3 id="xml_dec_nav">Select a Category:</h3>
<div id="page-wrap">
<form name "frmCat" action="index2.html" method="get">
<select id="mySelect" onchange="onchange1(this.options[this.selectedIndex].value)">
<option>Select a Category</option>
</select>
</form>
<input class="epcf" type="button" onclick="toggleDiv('epcf-wrap')" value="Options"/>
<input type="button" onclick="buildrow('OA1')" value="Create" />
<br/>
</div>
<table>
<thead>
<tr>
<th class="header headerSortUp">OAid</th>
<th class="header">BAC Level 1</th>
<th class="header">Basel Level 1</th>
<th class="header">Basel Level 2</th>
<th class="header">Risk Category Level 3</th> </thead>
<tbody>
</tbody>
</table>
</div>
<div id="epcf-wrap">
</div>
</body>
</html>
類似的東西來解決但在最初的發現 - 我已更新代碼澄清 – ChadM