开发者问题收集

如何检测 javascript 中某个元素的存在?

2012-07-30
166
var newHead = '<div id="head'+text+'"></div>';
var header = "head"+text;
if (document.getElementById(header) == undefined) {
        //alert(document.getElementById("head"+text));
        $("#result-job").append(newHead);
        var result = '<div id="div' + dataSplit[0] + '"><input type="radio" checked="checked" class="choosenJob" name="rdb_job" value="' + dataSplit[0] + '" id="' + dataSplit[0] + '" /><label for="' + dataSplit[0] + '">' + dataSplit[1] + '</label><br /></div>';
        $("div#" + header).append(result);
    } else {
        var result = '<div id="div' + dataSplit[0] + '"><input type="radio" checked="checked" class="choosenJob" name="rdb_job" value="' + dataSplit[0] + '" id="' + dataSplit[0] + '" /><label for="' + dataSplit[0] + '">' + dataSplit[1] + '</label><br /></div>';
        $("div#" + header).append(result);
    }

这些脚本能运行吗? 我想在结果 div 中添加一些新元素(div) 但我的脚本不起作用

fiddle 模拟: http://jsfiddle.net/86kH4/5/

3个回答

if (document.getElementById(header) == undefined) {

替换为

if ($("#" + header).length == 0) {
Nope
2012-07-30

您必须在 ID 周围添加一些引号,这样它才能正常工作。另外,删除 == undefined ,让 Javascript 检查它:

if (document.getElementById("header")) {
   /* treatment */
} else {
   /* treatment */
}
zessx
2012-07-30

这里你应该使用jquery函数“live” 例如:

$("div#" + header).live().append(result);

这个函数在添加元素时使用,附加创建的元素~~ 希望有用~~~

xiaohigh
2012-07-30