检查元素中是否有一些文本

时间:2015-02-04 17:48:00

标签: javascript html

我正在创建一个If ... Else语句,需要检查该元素是否具有innerHTML / textContent。 像这样:

  if (<span class="event"> *yet has some text inside*) {do smth}
  else {do smth else};

那么,我如何使用Javascript来做到这一点? 请帮助!

UPD!我动态更改内容,

 element.innerHTML
在我将一些文字放入我的&lt;之后,

似乎无法正常工作span&gt;。我的意思是它仍然认为&lt; span&gt;是空的。有什么办法吗?

6 个答案:

答案 0 :(得分:3)

使用innerHTML检查范围的document.getElementsByClassName("ClassName");。您需要index,因为您可能有多个具有相同类名的元素。点击按钮动态添加span内的文字。并再次检查它是否影响输出。试试这种方式,

HTML:

<span class="event"></span>

<button id="addTextButton">Add Text In Span</button>

<button id="removeSpanTextButton">Empty Span</button>

<button id="checkSpanButton">Check Span Content</button>

javaScript:

var spanContent = document.getElementsByClassName("event")[0];

checkSpanButton.onclick = function(){
    if(spanContent.innerHTML == ""){
        alert("Span is empty..");
    }
    else{
        alert("Span Text : " + spanContent.innerHTML);
    }
};

// dynamically add text
addTextButton.onclick = function(){
    spanContent.innerHTML = "Added This Text.";
};

removeSpanTextButton.onclick = function(){
    spanContent.innerHTML = "";
};

jsFiddle

答案 1 :(得分:0)

您可以使用:

var element = document.getElementsByClassName('event')[0];
if(element.innerHTML){
  //do something
} else{
  // do other things
}

如果要迭代具有类事件的所有元素,请使用:

var element = document.getElementsByClassName('event');
for(var i=0;i<element.length;i++){
  if(element[i].innerHTML){
    //do something
  } else{
    // do other things
  }
}

答案 2 :(得分:0)

这很简单:

if (element.innerHTML) {
    // element has content
} else {
    // element is empty
}

答案 3 :(得分:0)

例如:

var x = document.getElementsByClassName("event");
var i;
for (i = 0; i < x.length; i++) {
    if (x[i].innerHTML)...
}

您可以使用许多ways从JS访问HTML元素。一旦你访问了你的元素,你就可以(elem.innerHTML)。

P.S。     var element = document.getElementsByClassName('event')[0];

如果不检查数组大小,请不要使用下面的建议。

答案 4 :(得分:0)

innerHTML的替代方法

if(document.getElementById("element_id").lastChild) {
    //Has content
}
else {
    //No content
}

答案 5 :(得分:-1)

// JQuery First get the element's text with text 
 //function and check if its length is 0 means its empty

if($('。el')。text()。length == 0){

 // do something

}

// JS
 //And Its the same as jquery here we get the element by className or Id and check textContent


 if(document.getElementById('el').textContent.length == 0 {
         // do something
    }