簡體   English   中英

如何檢測javascript中元素的存在?

[英]How to detect the existence of an element in javascript?

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中添加一些新的element(div),但是我的腳本沒有用

小提琴模擬: http//jsfiddle.net/86kH4/5/

更換

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

if ($("#" + header).length == 0) {

您必須在ID周圍加上一些引號,這樣才能正常工作。 另外,刪除== undefined ,只讓Javascript檢查它:

if (document.getElementById("header")) {
   /* treatment */
} else {
   /* treatment */
}

http://jsfiddle.net/Q98mv/-請將您的代碼段與此代碼段進行比較,然后您會發現問題出在哪里

$('#chk1').click(function(){
    var ada = "asd";  //ada here will be my dynamic parameters                 
    var neww= '<div id="baru'+ada+'"></div>';

    if($('#baru'+ada).length==0){
        $("#asd").append(neww);
    }else{
        $("#baru"+ada).append("Hellow<br>");
    }
})​;

在這里,您應該使用jquery函數“ live”,例如:

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

當添加元素到創建的元素后添加時使用此函數~~希望它有用~~~

正如我在評論中提到的那樣,您的小提琴有語法錯誤,這就是為什么它“不起作用”的原因。 糾正錯誤后,您將獲得預期的行為: http : //jsfiddle.net/fkling/86kH4/28/


是的 ,您可以使用

document.getElementById(header) == undefined

測試ID包含在header的元素是否存在。

如果不存在這樣的元素,則getElementById將返回null並且null == undefinedtrue 考慮到這一點,如果將nullnull進行比較,那將更加正確:

document.getElementById(header) === null

就是說,由於您使用的是jQuery,因此我會盡量保持一致,不要將其與純DOM方法混合使用。 每個jQuery對象都有一個length屬性,其中包含選定元素的數量。 因此,jQuery等效項為:

$('#' + header).length === 0

替換為if (document.getElementById(header) == undefined) {替換為if ($('#header') == undefined) {可能會正常工作。 順便說一句,您錯過了代碼中標頭的引號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM