좋아, 그래서 그들에 어떤 정보가 있다면 함께 추가하고 싶은 열이 있습니다. 그래서자바 추가하기
계정을 가지고 있다고
- 3
- 2
- 1
-
.
4 개 계정 공간 만 3 계정이 있습니다. 어떻게 추가 할 자바 스크립트를 만드나요? 실제 마크 업이 같은 목록 인 경우
좋아, 그래서 그들에 어떤 정보가 있다면 함께 추가하고 싶은 열이 있습니다. 그래서자바 추가하기
계정을 가지고 있다고
4 개 계정 공간 만 3 계정이 있습니다. 어떻게 추가 할 자바 스크립트를 만드나요? 실제 마크 업이 같은 목록 인 경우
HTML :
<ul>
<li id="accounts">
<p> Accounts </p>
<ul>
<li> 1 </li>
<li> 2 </li>
<li> 3 </li>
<li> . </li>
</ul>
</li>
</ul>
자바 스크립트 :
// Get accounts, ul and set sum to 0
var acc = document.getElementById("accounts"),
ul = acc.getElementsByTagName("ul")[0],
sum = 0;
// Filter out text nodes. Returning an array of <LI> elements
var lis = Array.prototype.filter.call(ul.childNodes, function(li) {
if (li.tagName === "LI") {
return true;
}
});
// Loop through LIs adding up the sum
for (var i = 0, ii = lis.length; i < ii; i++) {
// If it's the last LI element then set the textContent.
if (i === ii - 1) {
lis[i].textContent = sum;
} else {
sum += +lis[i].textContent;
}
}
면책 조항 : 현대 브라우저 또는 모더 나이저이 필요합니다.
그건 내 자신의 구현보다 너무 정돈 된 ... 그리고 50 % 더 적은 루프 ..! ** + 1 ** = D –
@DavidThomas 귀하의 구현은 어디에서 했습니까? – Raynos
나는 그것을 부끄럽게 여긴다.하지만 JS Fiddle (http : // jsfiddle.net/davidThomas/HdAqr /). 그것은 당신 자신의 구현과 거의 같은 생각입니다. 그래서 나는 그것을 게시하지 않았습니다. 그것은 훨씬 덜 간결하고 간결합니다. =/ –
, 당신이 뭔가를 할 수 있습니다 :
는// using jquery syntax for brevity; consider it pseudocode
var jList = $('#accounts');
function addColumns() {
var iSum = 0;
jList.find('li').each(function() {
var jLI = $(this);
if(parseFloat(jLI.text()) != 'NaN')
iSum += parseFloat(jLI.text());
});
return iSum;
}
이 슈퍼 좋은 코드가 아닙니다. 우리가하는 일에 대해 좀 더 많은 정보를 주면 좀 더 튼튼한 것이 제안되어야합니다. 그러나 기본 개념은 요소의 집합을 검사하여 요약 가능한 콘텐츠가 있는지 (즉, 텍스트 콘텐츠가 숫자로 해석 될 수 있는지) 확인하는 것입니다. 그런 다음 summable 항목을 함께 추가합니다.
이와 같은 알고리즘의 요구 사항은 "열"을 마크 업하는 방식에 제약을 가하게됩니다. 그러나 거의 무한한 가능성이 있습니다.
"jQuery"는 어디에서 말합니까? – Raynos
"$"함수는 .find, .each 및 .text 메서드뿐만 아니라 모두 jQuery에서 제공합니다. 그리고 제 대답에서 말했듯이 jQuery 의존적 구문을 사용하여 간결하게했습니다. Michael이 jQuery를 사용하지 않더라도, 의사 코드와 마찬가지로 충분히 그가 수행하고있는 것을 따라갈 수 있습니다. 나는 또한 텍스트의 코드를 설명했다. downvote처럼 보이지 않는 것은 정말 적절합니다. – Tom
그럴 수도 있습니다. jQuery가 항상 옵션이라는 가정이 마음에 들지 않습니다. 또한 사람들이 JavaScript 질문을하는 경향이있을 때 그들은 실제 DOM 조작을보고 싶어합니다. 코드를 실제 DOM 조작 코드로 변환하는 것은 다른 과제입니다. – Raynos
지금까지 무엇을 했습니까? 코드 예제가 있습니까? –