jQuery 플러그 인 55 번 째: 대량 획득 값 을 JSon 문자열 로 되 돌려 줍 니 다.
/*
* jQuery etext plugin 0.2
*
* Copyright (c) 2015 chinet_bridge
*
* Json 0.2
*
*/
//Json
var Obj2str = function (o) {
if (o == undefined) {
return "";
}
var r = [];
if (typeof o == "string") return "\"" + o.replace(/([\"\\])/g, "\\$1").replace(/(
)/g, "\
").replace(/(\r)/g, "\\r").replace(/(\t)/g, "\\t") + "\"";
if (typeof o == "object") {
if (!o.sort) {
for (var i in o) r.push("\"" + i + "\":" + Obj2str(o[i]));
if (!!document.all && !/^
?function\s*toString\(\)\s*\{
?\s*\[native code\]
?\s*\}
?\s*$/.test(o.toString)) {
r.push("toString:" + o.toString.toString());
}
r = "{" + r.join() + "}"
} else {
for (var i = 0; i < o.length; i++) {
r.push(Obj2str(o[i]));
}
r = "[" + r.join() + "]";
}
return r;
}
return o.toString().replace(/\"\:/g, '":""');
}
; (function (d, b) {
d.fn.etext= function(options){
var defaults={ rowSelector:null};
var opts = d.extend({},defaults, options);
var l, k = this,n=[],chkboxname,chkboxlen;
d.extend(d.expr[ ":" ], {
isText: function( k ) {
return d(k).text() != "" && d(k).html().indexOf('>')==-1;
}
});
if(k.is(":input,:isText")){
k.each(function(){
var m = d(this);
if (m.is(":radio")) {
chkboxname='';
if(!m.is(":checked")){return true; }
l = m.is(":checked")?d.trim(m.val()):"";
n.push(l);
}else if (m.is(":checkbox")) {
if(!m.is(":checked")){return true; }
if(chkboxname==m.attr('name')) {
l += m.is(":checked")?d.trim(m.val())+ ",":"";
chkboxlen--;
}else{
l = m.is(":checked")?d.trim(m.val())+ ",":"";
chkboxname=m.attr('name');
chkboxlen=d(':checkbox[name='+m.attr('name')+']:checked').length;
chkboxlen--;
}
if(chkboxlen==0){
l =(l+',').replace(',,',''); n.push(l);
}
}else if(m.is(":input")){
chkboxname='';
l = m.val();l = d.trim(l); n.push(l);
}else if(m.is(":isText")){
chkboxname='';l = m.text();l = d.trim(l); n.push(l);
}
});
}else{
var builder = function(row){
var jo={};
row.find(":input,div,span").each(function(){
var m = d(this);
if (m.is(":radio")) {
chkboxname='';
if(!m.is(":checked")){return true; }
l = m.is(":checked")?d.trim(m.val()):"";
jo[m.attr("name")]=l;
}else if (m.is(":checkbox")) {
if(!m.is(":checked")){return true; }
if(chkboxname==m.attr('name')) {
l += m.is(":checked")?d.trim(m.val())+ ",":"";
chkboxlen--;
}else{
l = m.is(":checked")?d.trim(m.val())+ ",":"";
chkboxname=m.attr('name');
chkboxlen=row.find(':checkbox[name='+m.attr('name')+']:checked').length;
chkboxlen--;
}
if(chkboxlen==0){
l =(l+',').replace(',,','');
jo[m.attr("name")]=l;
}
}else if(m.is(":input")){
chkboxname='';
l = m.val();
l = d.trim(l);
jo[m.attr("name")]=l;
}else if(m.is(":isText")){
chkboxname='';l = m.text();l = d.trim(l);
jo[m.attr("name")]=l;
}
});
// push json , ,
n[n.length] = Obj2str(jo);
}
if(opts.rowSelector==null){
builder(k);
}else{
k.find(opts.rowSelector).each(function(){
var _k=$(this);
builder(_k);
});
}
}
return "["+n.join()+"]";
}
})(jQuery);
다음은 호출 예 입 니 다.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script src="jquery-1.9.1.min.js" type="text/javascript"></script>
<script type="text/javascript" src="jquery.etext.js"></script>
</head>
<body>
<form id="form1">
<div id="div1" >
<input type="text" id="Text1" name="Text1" />
<input type="text" id="Text11" name="Text11" />
<input type="text" id="Text2" name="Text2" />
<input type="radio" id="Radio1" name="Text5" value="1" />
YES
<input type="radio" id="Radio2" name="Text5" value="2" />
No
<input type="checkbox" id="chkbox1" name="Chkbox" value=" " />
<input type="checkbox" id="chkbox2" name="Chkbox" value=" " />
<span id="ufo" name="UFO">4242</span>
</div>
<div id="div2">
<input type="text" id="Text3" name="Text1" />
<input type="text" id="Text4" name="Text11" />
<input type="text" id="Text5" name="Text2" />
<input type="radio" id="Radio3" name="Text5" value="1" />
YES
<input type="radio" id="Radio4" name="Text5" value="2" />
No
<input type="checkbox" id="Checkbox1" name="Chkbox" value=" " />
<input type="checkbox" id="Checkbox2" name="Chkbox" value=" " />
<span id="Span1" name="UFO">4242</span>
</div>
</form>
<input type="button" id="submit" value=" " />
<script language="javascript">
$("#submit").click(function () {
var json = $("#form1").etext({ rowSelector: "div" });
alert(json);
});
</script>
</body>
</html>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.