program tip

문자열을 변수와 어떻게 연결합니까?

radiobox 2020. 11. 21. 14:17
반응형

문자열을 변수와 어떻게 연결합니까?


그래서 문자열과 전달 된 변수 (숫자)로 문자열을 만들려고합니다. 어떻게하나요?

다음과 같은 것이 있습니다.

function AddBorder(id){
    document.getElementById('horseThumb_'+id).className='hand positionLeft'
}

그렇다면 'horseThumb'과 ID를 하나의 문자열로 어떻게 얻습니까?

나는 모든 다양한 옵션을 시도했고, 나는 또한 검색했고 getElementById("horseThumb_{$id}")<- 와 같은 문자열에 변수를 삽입 할 수 있다는 것을 배우는 것 외에도 유용한 것을 발견하지 못했다. 그래서 어떤 도움이라도 대단히 감사하겠습니다.


귀하의 코드가 정확합니다. 아마도 문제는 AddBorder함수에 ID를 전달 하지 않거나 해당 ID를 가진 요소가 존재하지 않는다는 것입니다. 또는 브라우저의 DOM을 통해 해당 요소에 액세스하기 전에 함수를 실행 중일 수 있습니다.

첫 번째 사례를 식별하거나 두 번째 사례의 원인을 확인하려면 다음을 함수 내부의 첫 번째 줄로 추가합니다.

alert('ID number: ' + id);
alert('Return value of gEBI: ' + document.getElementById('horseThumb_' + id));

그러면 함수가 호출 될 때마다 값 id과 반환 값 이있는 팝업 창이 열립니다 document.getElementById. 당신이 얻을 경우 undefinedID 번호 팝업을 위해, 당신은 함수에 인수를 전달하지 않습니다. ID가 존재하지 않는 경우 첫 번째 팝업에서는 (잘못된?) ID 번호가 표시되지만 null번째 팝업에서는 표시됩니다 .

세 번째 경우는 웹 페이지가 다음과 같이 표시 AddBorder되어 페이지가로드 되는 동안 실행 시도하는 경우 발생합니다.

<head>
<title>My Web Page</title>
<script>
    function AddBorder(id) {
        ...
    }
    AddBorder(42);    // Won't work; the page hasn't completely loaded yet!
</script>
</head>

이 문제를 해결하려면 onload이벤트 핸들러 내에 AddBorder를 사용하는 모든 코드를 넣으십시오 .

// Can only have one of these per page
window.onload = function() {
    ...
    AddBorder(42);
    ...
} 

// Or can have any number of these on a page
function doWhatever() {
   ...
   AddBorder(42);
   ...
}

if(window.addEventListener) window.addEventListener('load', doWhatever, false);
else window.attachEvent('onload', doWhatever);

자바 스크립트에서 "+"연산자는 숫자를 추가하거나 문자열을 연결하는 데 사용됩니다. 피연산자 중 하나가 문자열 인 경우 "+"가 연결되고 숫자 만 있으면 추가합니다.

예:

1+2+3 == 6
"1"+2+3 == "123"

이는 문자열이 숫자와 연결되는 경우 Java 스크립트가 공백을 허용하기 때문에 발생할 수 있습니다. 공백을 제거하고 문자열을 만든 다음 getElementById에 전달하십시오.

예:

var str = 'horseThumb_'+id;

str = str.replace(/^\s+|\s+$/g,"");

function AddBorder(id){

    document.getElementById(str).className='hand positionLeft'

}

당신이했던 것과 똑같습니다. 그리고 이런 종류의 어리석은 것들에 대한 작은 팁을 줄 것입니다. 브라우저 URL 상자를 사용하여 js 구문을 사용해보십시오. 예를 들어 다음 javascript:alert("test"+5)과 같이 작성하십시오. 그러면 답이 있습니다. 코드의 문제는 아마도이 요소가 문서에 존재하지 않는다는 것입니다. 아마도 폼이나 무언가 안에있을 수 있습니다. URL을 작성하여이를 테스트 할 수도 있습니다 : javascript:alert(document.horseThumb_5)실수가 어디에 있는지 확인하십시오.


Another way to do it simpler using jquery.

sample:

function add(product_id){

    // the code to add the product
    //updating the div, here I just change the text inside the div. 
    //You can do anything with jquery, like change style, border etc.
    $("#added_"+product_id).html('the product was added to list');

}

Where product_id is the javascript var and$("#added_"+product_id) is a div id concatenated with product_id, the var from function add.

Best Regards!

참고URL : https://stackoverflow.com/questions/4234533/how-do-i-concatenate-a-string-with-a-variable

반응형