如何找到所有选中复选框的属性值作为xml字符串?
<input type="checkbox" id="chkDocId1" myattribute="myval1"/>
<input type="checkbox" id="chkDocId2" myattribute="myval43"/>
<input type="checkbox" id="chkDocId3" myattribute="myval21"/>
..
..
我想找到所有选中的复选框“myattribute”值为xml字符串,如下所示,
<selected>
<idx>myval1</idx>
<idx>myval143</idx>
..
..
</selected>
最好的方法是什么?我正在使用ASP.net和HTML。的Javascript
答案 0 :(得分:1)
使用jQuery你可以做这样的事情。
// generate the parent element using jQuery and
// cache it for reference
var $sel = $('<selected/>');
// get all checkbox which has attribute `myattribute`
$(':checkbox[myattribute]').each(function() {
// generate `idx` element with the content
$('<idx/>', {
html: $(this).attr('myattribute')
// append element to parent
}).appendTo($sel);
});
// get markup of the element fro object
console.log($sel[0].outerHTML);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" id="chkDocId1" myattribute="myval1" />
<input type="checkbox" id="chkDocId2" myattribute="myval43" />
<input type="checkbox" id="chkDocId3" myattribute="myval21" />
&#13;
答案 1 :(得分:1)
我不知道我是否理解你,如果我错了,请纠正我。所以我做的是遍历每个复选框,得到自定义myattribute
值并使用xml标签将它们附加到数组中:
var xmlArr = [];
xmlArr += "<selected>";
//to loop only through checked checkboxes just replace $('input[type="checkbox"]') with $('input[type="checkbox"]:checked')
$('input[type="checkbox"]').each(function(){
var myAttribute = $(this).attr('myattribute');
xmlArr += "<idx>" + myAttribute + "</idx>";
});
xmlArr += "<selected>";
console.log(xmlArr);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" id="chkDocId1" myattribute="myval1" />
<input type="checkbox" id="chkDocId2" myattribute="myval43" />
<input type="checkbox" id="chkDocId3" myattribute="myval21" />
&#13;
答案 2 :(得分:1)
您可以通过复选框循环创建xml结构 - 还建议使用data-
自定义属性并使用.data()
方法访问它。
见下面的演示:
var xml = $('<selected></selected>');
$('input[type=checkbox]').each(function(){
xml.append('<idx>' + $(this).data('myattribute') + '</idx>');
});
$('#result').append(xml);
console.log(xml[0].outerHTML);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" id="chkDocId1" data-myattribute="myval1"/>
<input type="checkbox" id="chkDocId2" data-myattribute="myval43"/>
<input type="checkbox" id="chkDocId3" data-myattribute="myval21"/>
<br/>
<div id="result"></div>
答案 3 :(得分:0)
你可以这样做。
Table 1 Table 2
------- --------
A A|B
B C|D
C
D
&#13;
var xml = $(':checkbox:checked').map(function() {
return '<idx>' + $(this).attr('myattribute') + '</idx>';
}).get().join('');
xml = '<selected>' + xml + '</selected>';
console.log(xml)
&#13;