比较jQuery

时间:2015-06-19 21:46:30

标签: javascript jquery dom comparison sharepoint-2013

我能够获得SharePoint文本框的.html(),它在DOM中只显示为<div>。当文本框为空时,<div>的InnerHTML只显示为<p></p>

因为这个特定的文本框并不总是出现(我根据表单上前一个复选框的选定值来控制它的外观),所以我无法使它成为必需,所以我通过检查它是否是动态来动态填写或不填写。这意味着看看InnerHTML是<p></p>还是类似<p>asdf<span id="ms-rterangecursor-start" RteNodeId="1"></span><span id="ms-rterangecursor-end"></span></p>,其中asdf是输入的文本(SharePoint放入其中的所有gobbly-gook)。

我认为我能做的就是这样检查,explainField<div>表示为jQuery变量,类似于http://makandracards.com/makandra/13445-compare-two-jquery-objects-for-equality所做的那样:

var $divNode = $('div');
var $pNode = $('p');
var $testNode = $divNode.html($pNode);
if (explainField.is($(testNode))) { 
    // we got <p></p>
    return false;  // go no further
} else {
    return true;  // we're ok
}

但这种比较不起作用。如果没有文本,则应该满足该语句并返回false。相反,它返回true并认为我们没有文本。如何找到<p></p>

,如何进行此比较并返回false?

1 个答案:

答案 0 :(得分:1)

因此,请尝试以下操作,这比您尝试的更容易。

var $divNode = $('div');
var html = $divNode.html();

if ( $(html).children().length > 0 ) {
    alert ("not empty");
} else {
    alert ("empty");
}

Demo