有没有办法在运行时确定元素是否为element.text()返回值?使用javascript还是jquery?
也就是说,检查一个元素是纯文本还是其他类型的元素?
为什么我需要一个以上的解决方案
我正在尝试解析一些具有完全不同编码风格的复杂表单(例如,单选按钮元素的文本值可能包含在标签标记中,也可能直接给出,或者可能包含在span标记中,等等)。
所以我需要用表单id作为包装器来解析表单,
现在,如果单选按钮的文本值包含在span中,并且当前选定的元素是单选按钮,那么下一个元素将是span标记(开始),我不想对它做任何操作,然后继续。后面的是文本,这是我希望使用this.text()获得的文本。
因此整个问题...
发布于 2011-11-10 07:07:02
可以使用nodeType
检查元素是否为纯文本(在这种情况下,它的值将为3)
<div id="wrapper"><input type='radio' />some text here</div>
$('#wrapper').contents().each(function()
{
alert(this.nodeType);
});
它将警告1(用于输入)和3(用于文本)。对于type=3,可以使用text()
获取文本值
注意-它也会考虑到空格(作为文本节点)。
发布于 2011-11-10 07:10:33
var attr = $(this).attr('name');
// For some browsers, `attr` is undefined; for others,
// `attr` is false. Check for both.
if (typeof attr !== 'undefined' && attr !== false) {
// ...
}
另一种检查方式:
if( typeof( $(this).attr('name') ) != 'undefined' ) { // ... }
您可以创建自己的jQuery扩展方法:
$.fn.hasAttr = function(name) {
return this.attr(name) !== undefined;
};
$(document).ready(function() {
if($('.edit').hasAttr('id')) {
alert('true');
} else {
alert('false');
}
});
<div class="edit" id="div_1">Test field</div>
发布于 2011-11-10 07:01:27
您好,您可以检查元素的类型,如下所示
<form >
<input type="text" id="a" value="abc"/>
</form>
<script>
var type = document.forms[0].elements[0].type;
alert(type);
</script>
https://stackoverflow.com/questions/8075928
复制相似问题