2012-09-27 74 views
2

我在使用jQuery的html select元素中選擇選項時遇到問題。下一個代碼演示我的問題:使用空白選擇選項時出現JQuery異常

$('select[name="location"] option[value=' + 'mercedes mercedes' + ']').attr('selected', true); 

而且我有簡單的html代碼選擇與選項值 - 「梅賽德斯奔馳」。當我運行我的腳本 - 我得到異常:

"Error: Syntax error, unrecognized expression: [value=mercedes mercedes] throw new Error("Syntax error, unrecognized expression: " + msg);"

當我刪除空白 - 一切正常。也許任何人都知道 - 如何解決它?在你選擇

+0

不要混合使用雙引號和單引號了很多。您必須在外部單引號內部轉義單引號。 –

回答

8

把雙引號:

$('select[name="location"] option[value="' + 'mercedes mercedes' + '"]') 
+0

我試過這種方法,我不知道爲什麼選擇器的結果是'#materialGroup option [value =「NaN」]「'。是否有限制它只允許數字? – newbie

+0

@newbie你的問題可能是其他地方,但沒有代碼,很難說 –

+0

我看到感謝您的幫助,也給了你一個+1 – newbie

1

與百步的值應該在選擇被引用:

$('select[name="location"] option[value="mercedes mercedes"]'); 

如果你從一個變量(最有可能),你應該做的這樣的:

$('select[name="location"] option[value="'+yourvariable+'"]'); 
2
$('select[name="location"] option[value=' + 'mercedes mercedes' + ']') 

重在

$('select[name="location"] option[value=mercedes mercedes]') 

這是不是一個有效的選擇器。由於該值有空格,因此必須用引號括起來(如其他答案所示)。

docs

value: An attribute value. Can be either an unquoted single word or a quoted string.

如果這不是一個多選場,只需撥打.val

$('select[name="location"]').val('mercedes mercedes'); 
+0

如果它是一個變量,你如何引用它? – newbie

+0

@newbie:不知道你的意思,但可能是同樣的方式,你只是在做字符串連接。 –

相關問題