验证span值的更好方法

时间:2013-03-05 11:32:53

标签: jquery

所有,我是jquery的新手,我发现有时候我需要编写一些代码来验证元素值。如下。

var selectedLayOutIdx=$("#spanSelectedLayout").html();
if (selectedLayOutIdx!=undefined && selectedLayOutIdx!="") {
    alert("The value is null, please check it.");
    return;
} else {
    //keep going.
} 

我发现这段代码看起来很冗长,我相信必须有更好的方法让代码在jquery中更有趣。到目前为止,我还没有找到它。

请帮帮我。感谢。

4 个答案:

答案 0 :(得分:3)

您可以使用jQuery.trim()

var selectedLayOutIdx=$.trim( $("#spanSelectedLayout").html() );
if( selectedLayOutIdx == "" ) {
  //its empty
}

OR

if( !$.trim($("#spanSelectedLayout").html()) ) {
     //its empty
}

答案 1 :(得分:1)

您可以使用以下代码检查范围的值。

var selectedLayOutIdx=$("#spanSelectedLayout").text();
if(selectedLayOutIdx == ""){
  alert("Value is null")
}else{
  // Your code
}

更新(更短版本):

if($("#spanSelectedLayout").text()){
  // code if text present
}

答案 2 :(得分:1)

var result=$("#spanSelectedLayout").html().replace(/^\s+|\s+$/g, '') 
if( result== "" ){

.
.
.

对所有浏览器都有效。

.trim()无法在某些版本的IE中使用。

答案 3 :(得分:1)

首先,您需要精确定义要求。 在你的代码中你测试undefined jQuerys html的实现永远不会返回undefined所以没有理由对此进行测试。但是,可能有或没有理由对null

进行测试
<div id="spanSelectedLayout">content</div>

var txt = $("#spanSelectedLayout").html() //txt will be "content"

<div id="spanSelectedLayout">    </div>

var txt = $("#spanSelectedLayout").html() //txt will be return "    "

<div id="spanSelectedLayout">    </div>

var txt = $.trim($("#spanSelectedLayout").html()) //txt will be return ""

<div id="spanSelectedLayout">    </div>

var txt = $("#spnSelectedLayout").html() //txt will be null

后者很可能是由于错误拼写选择器而发生的,即一个bug,所以你可能应该区别于“”或全白色字符串。但是“”并且所有的空格HTML在语义上是相同的,所以你应该对待那些可能导致

的值。

var selectedLayOutIdx = $ .trim($(“#spanSelectedLayout”)。html()); if(selectedLayOutIdx ==“”){    //是空的 }

但是$.trim(null)返回""并且不为null,因此仍然会隐藏错误,因此您必须在更简洁的代码或类似的代码之间做出决定

var selectedLayOutIdx=$("#spanSelectedLayout").html();
if(selectedLayOutIdx == null) { throw "Invalid selector" }

if(  && $.trim(selectedLayOutIdx) == "" ) {
   //is empty
}