将所有选中的复选框属性值查找为xml

时间:2017-01-04 18:10:40

标签: javascript jquery html asp.net

如何找到所有选中复选框的属性值作为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

4 个答案:

答案 0 :(得分:1)

使用jQuery你可以做这样的事情。

&#13;
&#13;
// 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;
&#13;
&#13;

答案 1 :(得分:1)

我不知道我是否理解你,如果我错了,请纠正我。所以我做的是遍历每个复选框,得到自定义myattribute值并使用xml标签将它们附加到数组中:

&#13;
&#13;
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;
&#13;
&#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)

你可以这样做。

&#13;
&#13;
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;
&#13;
&#13;