jdiv 내의 요소만 직렬화하기 위한 쿼리
와 같은 효과를 얻고 싶습니다.jQuery.serialize()
하지만 저는 주어진 아이들만 돌려주고 싶습니다.div
.
샘플 결과:
single=Single2&multiple=Multiple&radio=radio1
괜찮아요.다음을 사용하면 됩니다.이것은 폼을 직렬화하는 것과 똑같이 동작하지만 대신 div의 콘텐츠를 사용합니다.
$('#divId :input').serialize();
데모는 https://jsbin.com/xabureladi/1 에서 확인하십시오(코드는 https://jsbin.com/xabureladi/1/edit ).
jQuery에서 볼 항목을 제한하면 코드 속도를 향상시킬 수 있습니다.
* 대신 선택기:input을 사용하여 설정합니다.
$('#divId :input').serialize()
이렇게 하면 항목 목록이 짧기 때문에 코드가 더 빨라집니다.
serialize
내부의 모든 형식 지정div
.
당신은 디브를 목표로 해서 그렇게 할 수 있습니다.#target-div-id
마음속에form
사용:
$('#target-div-id').find('select, textarea, input').serialize();
현재 사용하는 기능:
/**
* Serializes form or any other element with jQuery.serialize
* @param el
*/
serialize: function(el) {
var serialized = $(el).serialize();
if (!serialized) // not a form
serialized = $(el).
find('input[name],select[name],textarea[name]').serialize();
return serialized;
}
다음 항목도 사용해 보십시오.
$('#divId').find('input').연재하다
내 솔루션은?
function serializeDiv( $div, serialize_method )
{
// Accepts 'serialize', 'serializeArray'; Implicit 'serialize'
serialize_method = serialize_method || 'serialize';
// Unique selector for wrapper forms
var inner_wrapper_class = 'any_unique_class_for_wrapped_content';
// Wrap content with a form
$div.wrapInner( "<form class='"+inner_wrapper_class+"'></form>" );
// Serialize inputs
var result = $('.'+inner_wrapper_class, $div)[serialize_method]();
// Eliminate newly created form
$('.script_wrap_inner_div_form', $div).contents().unwrap();
// Return result
return result;
}
/* USE: */
// For: $('#div').serialize()
serializeDiv($('#div')); /* or */ serializeDiv($('#div'), 'serialize');
// For: $('#div').serializeArray()
serializeDiv($('#div'), 'serializeArray');
function serializeDiv( $div, serialize_method )
{
// Accepts 'serialize', 'serializeArray'; Implicit 'serialize'
serialize_method = serialize_method || 'serialize';
// Unique selector for wrapper forms
var inner_wrapper_class = 'any_unique_class_for_wrapped_content';
// Wrap content with a form
$div.wrapInner( "<form class='"+inner_wrapper_class+"'></form>" );
// Serialize inputs
var result = $('.'+inner_wrapper_class, $div)[serialize_method]();
// Eliminate newly created form
$('.script_wrap_inner_div_form', $div).contents().unwrap();
// Return result
return result;
}
/* USE: */
var r = serializeDiv($('#div')); /* or serializeDiv($('#div'), 'serialize'); */
console.log("For: $('#div').serialize()");
console.log(r);
var r = serializeDiv($('#div'), 'serializeArray');
console.log("For: $('#div').serializeArray()");
console.log(r);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="div">
<input name="input1" value="input1_value">
<textarea name="textarea1">textarea_value</textarea>
</div>
이러한 요소에 공통 클래스 이름이 있는 경우 다음을 사용할 수도 있습니다.
$('#your_div .your_classname').serialize()
이렇게 하면 jQuery 선택기를 사용하여 선택되는 버튼의 선택을 피할 수 있습니다.:input
이는 다음을 사용하여 방지할 수도 있습니다.$('#your_div :input:not(:button)').serialize();
$('#divId > input, #divId > select, #divId > textarea').serialize();
언급URL : https://stackoverflow.com/questions/1829519/jquery-to-serialize-only-elements-within-a-div
'source' 카테고리의 다른 글
GCC를 사용하여 C 및 C++ 파일을 함께 컴파일 (0) | 2023.08.18 |
---|---|
URL에서 파일이 있는지 확인하는 방법 (0) | 2023.08.18 |
시간을 병렬화할 수 있는 방법이 있습니까?바둑에서 효과적인 실행 시간을 지키면서 잠은 자나요? (0) | 2023.08.18 |
값 오류: 알 수 없는 투영 '3d' (0) | 2023.08.18 |
addEventListener 및 getElementsByClassName을 사용하여 요소 ID 전달 (0) | 2023.08.18 |