의도 된 결과 : document.getElementById
을 사용하여 자동으로 양식을 작성하십시오 (자바 스크립트 만 해당).배열에서 HTML 양식을 자동으로 채우십시오.
나는 html 스크립트에 올바르게 추가되는 다음 함수로 전달되는 배열을 가지고 있습니다.
function showResults(results) {
var s = "";
for (var i=0, il=results.features.length; i<il; i++) {
var featureAttributes = results.features[i].attributes;
for (att in featureAttributes) {
s = s + "<b>" + att + ":</b> " + featureAttributes[att] + "<br />";
// var subshed = feature[0].attributes["SubWS"];
}
}
dojo.byId("info").innerHTML = s;
}
결과가 보이는 그러나
OBJECTID: 190 ProjectTyp: Stormwater Retrofit Unit: Lower SubWS: sadd
처럼, 나는 항상 내가 최종 출력을 덮어 쓸 것
document.getElementById(att).value = featureAttributes[att];
으로 기존 양식을 작성하는 스크립트를 수정해야 단 하나의 양식 값만 기입하십시오. 여러 값을 채우려면 어떻게해야합니까?
업데이트 : Mr. Polywhirl이 맞습니다. null 속성 값을 처리하기 위해 if 문을 추가해야했습니다. 최종 코드 :
function showResults(results) {
var subshed = results.features[0].attributes["SubWS"];
//OBJECTID = results.features[0].attributes["OBJECTID"];
document.getElementById("searchString").value = subshed;
console.log("feature", results.features[0].attributes["SubWS"])
console.log(document.getElementById("Map_ID"));
var s = "";
for (var i = 0, il = results.features.length; i < il; i++) {
var featureAttributes = results.features[i].attributes;
for (att in featureAttributes) {
// s = s + "<b>" + att + ":</b> " + featureAttributes[att] + "<br />";
// var subshed = feature[0].attributes["SubWS"];
// document.getElementById(att).value = featureAttributes[att];
if(!!featureAttributes[att]&&!!document.getElementById(att)){
document.getElementById(att).value = featureAttributes[att];
}else{
//alert(att + "this is null")
}
}
}
// dojo.byId("info").innerHTML = s;
}
사용중인 코드를 정확하게 표시 할 수 있습니까? –
att가 id로 할당되는 위치는 어디입니까? – Tamar
이게 당신이 찾고 있는게 있나요? http://jsfiddle.net/w6Zam/8/ –