var abc = "<a href=''>aaa</a>";
divinnerHTML = abc;
alert(divinnerHTML == abc); // 注意:这种情况下,alert出来的,依然可能是false
因为浏览器在赋值时,会对字符串进行解释整理后,再赋值给innerHTML
所以不等是正常的
你可以用prompt('', divinnerHTML)
把提示的html拷贝到记事本里,再跟你的字符串比较,就知道怎么不同了
你可以直接用innerHTML这个方法返回div的内容。
下面是个简单的小例子:
<body>
<div style="width:100px; height:100px; border:1px solid #ccc;">
<a href="#">111111</a>
</div>
</body>
<script>
var oDiv = documentgetElementsByTagName('div')[0];
alert(oDivinnerHTML); //这样就可以获取div标签里面所有的内容。
</script>
这样alertd出的框体里面的值是 '<a href="#">111111</a> ';
js获取div里的元素个数方法是:先得到父元素,再得到父元素下的某标签类别的子元素,最后统计出子元素的长度就可以简单实现了。
js 动态添加元素(div、li、img等)及设置属性的方法:
一、js 动态添加元素div
<div id="parent"></div>
function addElementDiv(obj) {var parent = documentgetElementById(obj);//添加 divvar div =
documentcreateElement("div");//
设置 div 属性,如 iddivsetAttribute("id", "newDiv");divinnerHTML = "js 动态添
div";parentappendChild(div);}
调用:addElementDiv("parent");
二、js 动态添加li
<ul id="parentUl"><li>原li</li></ul>
function addElementLi(obj) {var ul = documentgetElementById(obj);//添加 livar li =
documentcreateElement("li");//
设置 li 属性,如 idlisetAttribute("id", "newli");liinnerHTML = "js 动态添加li";ulappendChild(li);}
调用:addElementLi("parentUl");
三、js 动态添加元素img
<ul id="parentUl"></ul>
function addElementImg(obj) {var ul = documentgetElementById(obj);//添加 livar li =
documentcreateElement("li");//添加 imgvar img = documentcreateElement("img");//
设置 img 属性,如 idimgsetAttribute("id", "newImg");//设置 img 地址imgsrc =
"/images/prodjpg";
liappendChild(img);ulappendChild(li);}
调用:addElementImg("parentUl");
至少有2种方法:
一、用div控件,<div id="div1" runat="server">abcdef</div>,后台用div1InnerHtml获取。
二、前台用js把div的innerHTML值存入隐藏域<input type="hidden" name="hidden"/>中,提交服务器后用RequestForm["hidden"]获取值。
直接documentgetElementById就可以了。但是要在documentcreateElement("markerform")已经创建成功之后才能读到,否则就对象为空了,所以,可以考虑用一个全局的bool变量来检测状态。当全局的bool变量为真的时候就执行函数,反之,就不执行,所以在代码中要时时变换控制这个全局的bool变量的状态。
当然也可以在要控制id="markerSerch" 的时候进行判断,这样更直观:
if(documentgetElementById("markerSerch")==true){
// 页面中存在这个对象了,在执行相应的显示或隐藏 *** 作
}
//else{//页面中没有这个对象,不做 *** 作}
鼠标点击事件应该是标准写法,下面是通用代码,供参考。最后target是被点击的元素,取代你的this
function clicked_handler(e) {var e = e || event; //标准化事件对象(W3C DOM 和IE DOM ), FF 或 IE
var target = etarget || esrcElement; //标准化事件对象属性, FF或 IE
}
三个方法。DOM0级,DOM2级。
网上流传最广的DOM0级
<div id="a" onclick="f(this);">1</div>
function f(e){
alert(einnerHTML);
}
把this当做参数传入然后调用。
第二个算是混合类型的。严格来说不算是DOM2级。
function f(){
alert(eventsrcElementinnerHTML);
}
<div id="a" onclick="f();">1</div>
获取事件源。
这里有兼容问题。IE用srcElement。FF用的是target。而且如果要在FF运行需要把event当做参数写入。如:
<div id="a" onclick="f(event);">1</div>
function f(e){
alert(etargetinnerHTML);
}
第三个方法DOM2级的。
<div id="a">1</div>
function addEv(obj,ev,fn){
if(objattachEvent){//IE模型
objattachEvent("on"+ev,function(){
fncall(obj);
});
}else if(objaddEventListener){//W3C模型
objaddEventListener(ev,function(){
fncall(obj);
},false);
}else{
obj["on"+ev] = fn;
}
}
var t = documentgetElementById('a');
addEv(t,'click',function(){
alert(thisinnerHTML);
});
一般类库和高手都用这种写法。
第一个缺点就是如果不加call IE就会把this指向window。我做了点修改让他this指向当前对象了。还有一个缺点就是无法删除匿名函数写的事件。
objattachEvent("on"+ev,function(){
fncall(obj);
});
可以把这个function写到一个单独的函数中就可以删除了。不过this就不会指向当前的对象了。
如果想做的完美可以搜索detachEvent匿名函数或attachEvent匿名函数。
如果还不懂可以M我。
以上就是关于取一个<div>的innerHTML与一个字符串比较,alert出的innerHTML跟字符串相等,为什么程序判断总是不相等。全部的内容,包括:取一个<div>的innerHTML与一个字符串比较,alert出的innerHTML跟字符串相等,为什么程序判断总是不相等。、js如何获取div中的数据、js获取div里的元素个数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)