.ajax() 호출의 데이터에 대한 jQuery .find()가 div 대신 "[객체]"를 반환합니다.
찾는 중div
으로 구성하다.id="result"
에서 반환된 데이터.ajax()
사용..find()
.불행하게도,alert(result)
돌아오지 않다div#result
.
코드는 다음과 같습니다.
$.ajax({
url: url,
cache: false,
success: function(response) {
result = $(response).find("#result");
alert(response); // works as expected (returns all html)
alert(result); // returns [object Object]
}
});
구체적으로 말하면, 올바르게 동작하고 있는 것 같습니다.돌아온다면서요?[object Object]
이것이 jQuery가 반환하는 것입니다.find("#result")
방법.일치하는 jQuery 요소를 반환합니다.find
문의합니다.
해당 객체의 속성을 가져옵니다.result.attr("id")
- 다시 돌아옵니다.result
.
일반적으로 이 답변은 다음 중 어느 쪽에 해당하는지 여부에 따라 달라집니다.#result
는 최상위 요소입니다.
한다면#result
최상위 요소입니다.
<!-- #result as top level element -->
<div id="result">
<span>Text</span>
</div>
<div id="other-top-level-element"></div>
find()
동작하지 않습니다.대신,filter()
:
var $result = $(response).filter('#result');
한다면#result
최상위 요소가 아닙니다.
<!-- #result not as top level element -->
<div>
<div id="result">
<span>Text</span>
</div>
</div>
find()
동작합니다.
var $result = $(response).find('#result');
나는 단지 3시간 동안 비슷한 문제를 풀었다.이게 나한테 효과가 있었어.
내가 내 몸에서 꺼내려고 했던 요소는$.get
response는 본문 태그의 첫 번째 자식 요소입니다.어떤 이유에서인지 이 요소에 div를 둘렀을 때, 그것을 통해 검색할 수 있게 되었습니다.$(response).find('#nameofelement')
.
왜 그랬는지 모르겠지만, 그래, 회수 가능한 요소는 신체의 첫 번째 아이일 수 없어...누군가에게 도움이 될 수 있다:)
이것을 시험해 보세요.
result = $("#result", response);
그건 그렇고.alert
디버깅을 하기 위한 대략적인 방법입니다.console.log
답은 다음과 같습니다.
<div class="test">Hello</div>
<div class="one">World</div>
다음 jQuery가 작동하지 않습니다.
$(data).find('div.test');
div는 최상위 요소이고 데이터는 요소가 아니라 문자열이기 때문에 작동하려면 .filter를 사용해야 합니다.
$(data).filter('div.test');
또 다른 질문입니다.$에 Jquery Selector를 사용합니다.AJAX가 HTML을 로드했습니까?
parse html을 사용하는 것을 잊지 마십시오.예를 들어 다음과 같습니다.
$.ajax({
url: url,
cache: false,
success: function(response) {
var parsed = $.parseHTML(response);
result = $(parsed).find("#result");
}
});
동작해야 한다:)
이 방법은 효과가 있었습니다.$(응답)의 끝에 .html()을 붙이면 됩니다.find(#result")
jQuery find()가 DOM 개체를 랩하는 jQuery 개체를 반환하고 있습니다.div를 원하는 대로 하려면 그 물체를 가지고 작업할 수 있어야 합니다.
문제는 Ajax 응답이 문자열을 반환하고 있기 때문에 $(response)를 직접 사용하면 콘솔에 JQUERY: Uncaught Error: Syntax Error, Uncognized error, uncognected expression이 반환된다는 것입니다.이 기능을 올바르게 사용하려면 먼저 $.parseHTML(응답)이라는 JQUERY 내장 함수를 사용해야 합니다.함수 이름이 의미하는 것처럼 먼저 문자열을 html 개체로 해석해야 합니다.고객님의 경우 다음과 같습니다.
$.ajax({
url: url,
cache: false,
success: function(response) {
var parsedResponse = $.parseHTML(response);
var result = $(parsedResponse).find("#result");
alert(response); // returns as string in console
alert(parsedResponse); // returns as object HTML in console
alert(result); // returns as object that has an id named result
}
});
dataType: "html"
jQuery를 지정하지 않으면 요청된 데이터 유형을 추측합니다(http://api.jquery.com/jQuery.ajax/) 체크).내 생각엔 네 경우엔response
wasString
가 a a DOMObject
【DOM】【String】【스트링】
는 '어느 정도'로 해 볼 수 요.console.log("type of response: " + typeof response)
(오류)alert("type of response:" + typeof response)
Firebug (Firebug)
이 방법으로 div를 찾아서 속성이나 원하는 것을 얻을 수 있습니다.
$(response).filter('#elementtobefindinresponse').attr("id");
또는
$(response).filter('img#test').attr("src");
이는?#result
HTML 답 html html html html? 아무것도찾을 수 에도 빈 를 반환합니다.jQuery는 아무것도 찾지 못한 경우에도 빈 개체를 반환합니다.
alert(result.length);
해서 더 돼요.dataType: "html"
요청대로 하겠습니다.html DOM html DOM html 을 사용합니다.
다음 코드만 사용합니다.
var response= $(result);
$(response).find("#id/.class").html(); [or] $($(result)).find("#id/.class").html();
$.ajax({
url: url,
cache: false,
success: function(response) {
$('.element').html(response);
}
});
< span class = "element" >
//response
< div id = "result" >
Not found
</div>
</span>
var result = $("#result:contains('Not found')").text();
console.log(result); // output: Not found
if ( $ ( response )를 실행합니다.필터(#result')를 지정합니다.length ) // 무엇인가를 실행한다.
경보 사용 중인 내용을 보려면:
alert( $(response).find("#result").html() );
이런 걸 해야 될 수도 있어요
var content= (typeof response.d) == 'string' ? eval('(' + response.d + ')') : response.d
그 다음, 이 기능을 사용할 수고를 덜어줍니다.
result = $(content).find("#result")
언급URL : https://stackoverflow.com/questions/3300332/jquery-find-on-data-from-ajax-call-is-returning-object-object-instead
'programing' 카테고리의 다른 글
jq를 사용하여 배열의 각 개체에서 필드를 추출하려면 어떻게 해야 합니까? (0) | 2023.02.22 |
---|---|
selectMatch에서 angular ui-bootstrap auto-ahead 콜백을 실행 (0) | 2023.02.22 |
JS 가져오기, 응답 시 헤더를 가져오지 않음 (0) | 2023.02.22 |
noImplicitAny 플래그가 활성화된 형식 스크립트를 컴파일할 때 "Index signature of object type is implicitly has a 'any' type" 오류를 방지하려면 어떻게 해야 합니까? (0) | 2023.02.22 |
create-module-app, 설치 오류("명령어를 찾을 수 없음") (0) | 2023.02.22 |