jQuery val() 包含()

22

我想知道textarea的值是否包含特定单词。这对我没有起作用。

var value = $('#embedModal textarea').val();
if($(value).contains('iframe')){...
5个回答

34

尝试使用 JavaScript

if (value.indexOf('iframe') >= 0) {

JQuery contains 方法是用于操作 DOM 元素而不是字符串。


这在所有IE浏览器中都无法正常工作。 - Jason Foglia
@JasonFoglia 这是数组indexOf函数的文档,而不是string的indexOf - Nikita Rybak

4

试着这样做:

$('#embedModal textarea:contains("iframe")').each(function() {
  //Do something
});

edit

Example


1
这个可以工作:

$.contains( document.documentElement, document.body ); // true

var babyEl = $('div#id');
var daddyEl = $('div#ID');

if($.contains(babyEl, daddyEl)) {
    //do fun stuff
}

0
尝试以下代码......
代码:
             <textarea rows="4" cols="9">Something iframe</textarea>
             <textarea rows="4" cols="9">Something</textarea>

               var obj=$("textarea:contains('iframe')");

                   if(obj){

                            obj.css("background-color", "red");

                         }

-1 是因为在 这个答案 中已经提到了,而且那个 if 条件语句总是为真,所以毫无意义。jQuery 选择器总是返回 jQuery 集合对象,如果你想检查它是否包含任何内容,应该检查它的 length 属性。请参见 这个 fiddle这个 fiddle - Shadow The Spring Wizard
是的,jQuery选择器将始终返回jQuery集合对象,但只有当任何文本区域包含iframe关键字时,条件才为真,否则为假... - Ram Lakhan Yadav
不,它永远不会是false,因为jQuery集合是一个对象。 - Shadow The Spring Wizard

0

你也可以这样做:

if($('#embedModal textarea:contains("iframe")').length > 0){
    //TODO: do stuff
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接