2012-09-12 36 views
0

我正在使用jQuery將內容添加到HTML表單,如果它尚不存在 - 是否有任何更簡潔的方法來測試,如果具有給定值的隱藏字段已經存在目前的形式?jQuery添加一個元素,如果不存在

$("form").find("input[type='hidden'][value='" + $content.find("input[type='hidden']").val() + "']").length === 0 
+1

不知道什麼'$ content'包含但'$ content.find( 「輸入[類型= '隱藏']」)'可能匹配多個元素,然後你總能得到第一個匹配的值。所以你的代碼將只針對該上下文中的第一個隱藏輸入進行驗證。 –

+0

正確 - 但我知道'$ content'只會包含一個隱藏字段。感謝您的輸入。 –

回答

1

在jQuery選擇器中使用連接時,應注意轉義特殊字符(如引號)。 如果您的輸入值是,例如Let's go,該怎麼辦? 您的jQuery選擇器變爲input[type='hidden'][value='Let's go'],並且無效。

我寧願去與filter()功能:

$("form input[type='hidden']").filter(function() { return $(this).val() == $content.find("input[type='hidden']").val(); }).length === 0 
+0

謝謝 - 好點。我不會考慮連接問題。儘管你的最終結果更加詳細,但我希望能夠爲一個看似平凡的操作做簡潔的事情。也許在這種情況下這是不可能的,但在接受之前會看到是否有任何輸入。 –

相關問題