2015-02-19 2 views
1

Я знаю, как innerhtml работает в javascript, как в следующей функции.Innerhtml в javascript

<html> 
    <head> 
     <title></title> 
    </head> 
    <body onLoad="changetext();"> 

     <div id="pp" onClick="changetext();">Click here</div> 
<script> 
function changetext(){ 
document.getElementById("pp").innerHTML = "New Content!"; 
} 
</script> 
    </body> 
</html> 

приводит New Content , но я также пришел acrosss много примеров, когда innerhtml + также были использованы как в этой ссылке http://www.w3schools.com/js/tryit.asp?filename=tryjs_addeventlistener_add_many2

Clearify Пожалуйста о innerhtml + использования во втором примере. Большое спасибо

+2

'+ = 'используется для ** Конкатенации ** str ing – prog1011

+0

Возможный дубликат [Как работает + = (плюс равный)?] (http://stackoverflow.com/questions/6826260/how-does-plus-equal-work) –

ответ

2

elem.innerHTML +="abc" означает, что он будет добавитьabc к innerHTML из elem.

elem.innerHTML +="abc"

эквивалентно

elem.innerHTML = elem.innerHTML + "abc"

1

Вы используете innertHTML+ когда вы должны добавить новое содержание в существующий контент. Если вы используете innerHTML = "New Content", который заменит все содержимое в pp и разместите там «Новый контент», но innerHTML+="New Content" добавит это с существующим контентом.

Как и другие люди, упомянутые innerHTML += "New Content" эквивалентны element.innerHMTL = element.innerHMTL + "New Content", поэтому это означает, что += в основном используется для добавления содержимого. Он может быть использован для добавления/добавлять новые значения и в то же время может быть использован для увеличения в int значения, так i++ = i+=1 = i = i+1

+1

Стоит упомянуть, что 'a + = b 'является сокращением для' a = a + b' –

0

Оператор += добавляет текст к элементам текущего контента.

0

Оператор присваивания присваивает значение своему левому операнду на основании значение его правого операнда. Основной оператор присваивания равен (=), который присваивает значение своего правого операнда его левому операнду. То есть x = y присваивает значение y x.

Другие операторы присваивания являются сокращение для операций, перечисленных в следующей таблице:

Shorthand operator |  Meaning 
-------------------------------------- 
| x += y   |  x = x + y | 
---------------------------------------- 
| x -= y   |  x = x - y | 
---------------------------------------- 
| x *= y   |  x = x * y | 
---------------------------------------- 
| x /= y   |  x = x/y | 
---------------------------------------- 
| x %= y   |  x = x % y | 
---------------------------------------- 
| x <<= y   |  x = x << y | 
---------------------------------------- 
| x >>= y   |  x = x >> y | 
---------------------------------------- 
| x >>>= y   |  x = x >>> y | 
---------------------------------------- 
| x &= y   |  x = x & y | 
---------------------------------------- 
| x ^= y   |  x = x^y | 
---------------------------------------- 
| x |= y   |  x = x | y | 
---------------------------------------- 

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Expressions_and_Operators#Assignment_operators

Спецификация определяет эти «сокращенные» операторы, как соединения Назначение (оп =)

http://ecma-international.org/ecma-262/5.1/#sec-11.13.2

Так на основе из вашего примера, если:

element.innerHTML = 'foo'; 

затем:

element.innerHTML += 'bar'; 

так же, как:

element.innerHTML = element.innerHTML + 'bar'; 

, что приводит к:

console.log(element.innerHTML); // "foobar" 
+0

Не являются «сокращенными» операторами, они являются [* составными операторами присваивания *) (http://ecma-international.org/ecma-262/5.1/#sec -11.13.2). – RobG

+0

@RobG благодарит за это –