0

我有这个代码:

  console.log($(domElem).attr('selected'));

  console.log(typeof $(domElem).attr('selected'));

  if($(domElem).attr('selected') == true);
  {
      alert("there is one element selected");
  }

输出是:

false
boolean
false
boolean
false
boolean
...

我预计“这是一个选定的元素”从未显示过,但它显示的次数与项目存在的次数一样多。

jQuery 1.3.2

任何想法?

哈维尔

4

2 回答 2

0

在条件后面加上一个分号:

if($(domElem).attr('selected') == true);  
 {
       alert("there is one element selected");  
 } 

终止“if”语句,就像你写的一样:

if($(domElem).attr('selected') == true){}; 
alert("there is one element selected");

将其更改为:

if($(domElem).attr('selected') == true)
{
       alert("there is one element selected");
}
于 2012-04-10T12:07:12.763 回答
0

这是一个很难回答的问题,因为您想要实现的目标有点不清楚。

如果它只是检查是否选择了列表项,我会这样做:

HTML(是的,我把它从 w3schools 拿走了,对不起!为什么这很糟糕):

<select id="selectedLIST">
    <option value="volvo">Volvo</option>
    <option value="saab">Saab</option>
    <option value="mercedes">Mercedes</option>
    <option value="audi">Audi</option>
</select> 

jQuery

var list = $('#selectedLIST');
$(list).change(function(){
    $.each(list.children(), function(index, value){
        if($(value).attr('selected') === true){
            alert("there is one selected");
        }
    });
});

这将生成一个列表,当用户在列表中选择一个新元素时,将根据 HTML 标记上的“selected”属性生成一个弹出窗口,显示“这是一个已选择”。

此外,在 if 语句之后放置分号会“终止”该语句。

忘记放置分号也会迫使 JS 引擎插入分号。

于 2012-04-10T12:07:32.337 回答