2017-11-05 11 views
2

関数内にいくつかのイメージを追加していますが、追加されたイメージのいずれかをクリックすると、隠し値を "Yes"に変更します。デフォルトでは「いいえ」に設定されています。ここでdivをクリックした後にjQueryで隠し値を変更する方法

var id = $(this).data("id"); 
$(".thumbs").append("<div class='thumb-wrapper' data-name='" + $(this).val() + "'><img class='loading' src='uploads/" +$(this).val()+"'><div class='thumbs-close' data-id='" + id + "'>x</div><input type='hidden' name='featured' value='No' id='hidden'></div>"); 

は、私は親指ラッパークラスをクリックしたときのためのコードです:

$(".thumbs").on("click", ".thumb-wrapper", function(e) { 
     var hidden = $(this).closest("#hidden").val("Yes"); 
     alert(hidden); 

これは、現在、「未定義」警告します。

生成されたHTMLの例は次のとおりです。

<div class="thumbs"> 
<div class="thumb-wrapper" data-name="chocolate.jpg"> 
<img class="loading" src="uploads/chocolate.jpg"><div class="thumbs-close" data-id="image_8">x</div> 
<input type="hidden" name="featured" value="No" id="hidden"> 
</div> 
</div> 
+0

HTMLを投稿できますか? –

+0

@PhaniKumarM、私は元の質問を更新しました。 – user8463989

+0

最初のJSコードはどこに実装されていますか? –

答えて

2

ここにあなたの問題がclosestアップを検索されています。代わりにfindを使用する必要があります。

var hidden = $(this).find("#hidden").val("Yes"); 

jqueryの最も近い公式説明:

説明:セット内の各要素について、要素自体をテストし、その祖先を介しまでをトラバースすることによってセレクタに一致する最初の要素を取得しますDOMツリー。

アップからダウンに検索の方向を変えるに最も近い代替を求めて他の関連の質問がありました:Is there an equivalent to .closest() that searches down the DOM tree instead of up?

あなたはVaRの使用に値を保存したい場合:

var hiddenObj = $(this).find("#hidden"); 
var valueVar = hiddenObj.val(); 
alert(valueVar); 
+0

ありがとうございます。アラートは私に[Object Object]を与えます。私がyesを抜けて.val()を持っていれば、それは現在の値、すなわち: "No"を警告します。 – user8463989

+0

それで、あなたのために働いていました。右? – OscarAkaElvis

+0

いいえ、「はい」の代わりに[オブジェクトオブジェクト]を表示します。 – user8463989

1

クラスに隠された入力をよりよく変更する:

<input type="hidden" name="featured" value="No" class="hidden"> 


$(".thumbs").on("click", ".thumb-wrapper", function(e) { 
    var hidden = $(this).find(".hidden").val("Yes"); 
    alert(hidden); 

複数の要素を持つことはできません同じIDを共有するTS!

関連する問題