【发布时间】:2012-06-01 17:39:47
【问题描述】:
Div1.InnerHtml = (someString);
-VS-
Div1.InnerHtml += (someString);
我注意到他们都做同样的事情,但是我是否有 + 有什么真正的区别吗?
还有..InnerText和InnerHtml有什么区别?
【问题讨论】:
-
如果你得到你想要的信息,别忘了把答案标记为已接受
Div1.InnerHtml = (someString);
-VS-
Div1.InnerHtml += (someString);
我注意到他们都做同样的事情,但是我是否有 + 有什么真正的区别吗?
还有..InnerText和InnerHtml有什么区别?
【问题讨论】:
+= 会将(someString) 附加到Div1.InnerHtml 的现有值,而= 会将Div1.InnerHtml 的值替换为(someString)。
如果结果相同,那么Div1.InnerHtml 的起始值很可能是null 或string.Empty ("")
关于 InnerText 与 InnerHtml:InnerHtml 可能会返回类似 <h1>Hello World</h1> 的内容,而 InnerText 将返回 Hello World(没有实际 HTML 元素的元素的值)。
考虑这些情况:
string someString = "Hello";
string innerHtml = "";
innerHtml += someString; // result will be "Hello"
string someString = "Hello";
string innerHtml = "";
innerHtml = someString; // result will be "Hello"
string someString = "Hello";
string innerHtml = "World";
innerHtml += someString; // result will be "HelloWorld"
string someString = "Hello";
string innerHtml = "World";
innerHtml = someString; // result will be "Hello"
【讨论】:
第一个问题的答案
C# String Append -: += 用现有字符串追加字符串
另一个例子是
string s = "abc";
s+="cde";
output
s = "abcde"
第二个问题的答案
innerText 将按原样检索值,但如果它包含标签,它将按原样呈现文本,而innerHTML 通过应用 HTML 标签(如果有)来检索值。
【讨论】:
它们不是完全一样的东西。这是关于字符串操作,而不是与 ASP.NET 相关的特定内容
首先将 someString 放在 Div1 的字符串属性 InnerHtml 中,
第二个将 InnerHtml 设置为 InnerHtml +(someString),因此,例如,如果 InnerHtml 在此操作之前包含字符串“aa”,则在后一种情况下它将变为“aaSomeString”,在前一种情况下将变为“SomeString”。
【讨论】:
他们只是在做同样的事情,因为当你这样做时 Div1 是空的 +=
+= 是附加的,所以如果你连续几次这样做,你会看到你得到了你可能没有预料到的数据。
赋值运算符 (=) 将简单地将 Div1 的值设置为左侧的任何值,而不管之前的值是什么。
【讨论】:
+= 是串联(a = a + b 的缩写)
= 将用右侧的新值覆盖该值
innerHtml 将允许您添加标签,例如 &lt;p&gt; 和 div
innerText 会将这些标签编码为&lt;p&gt; 和&lt;div&gt;
【讨论】:
+= 是一个速记运算符
例如
i = i + (some value) and i+=(some value) both is same.
所以,一般来说,
Left_Val (operator)= right_val and Left_Val = Left_Val (operator) right_val are same
请注意,operator 应该是二进制的。 速记运算符不能与一元(如一元减号)和三元运算符(如?:)一起使用。
【讨论】: