2013-05-11 157 views
0

我有兩個元素的源和目標(排序的鏈接select)。我希望在源元素的data-attribute中獲取目標元素的名稱。可能嗎?以下代碼不起作用。通過JQuery獲取父元素的data-attribute中的目標元素名稱

<label>States</label> 
    <select class='sparent' data-select-target='child'> 
    <option value=''>Select State</option> 
    <option value='AZ'>AZ</option> 
    <option value='PA'>PA</option> 
    <option value='TX'>TX</option> 
    </select> 
</label> 
<div name='child' class='schild'>value</div> 

jQuery代碼:

$(".sparent").change(function(){ 
    var id = $(this).val(); 
    var target = $(this).data("select-target"); 
    $.get("includes/chainedselect.php", {id:id}, function(data){ 
    $(target).html(data); 
    });  

});

但是,如果我有$("child").html(data);取代$(target).html(data);它的工作原理。

誰能幫我想出解決辦法?謝謝你的時間。

+0

如果你在有問題的行上添加'console.log(target)'(或'alert(target)'),你會得到什麼?可能會阻止其工作的一個原因是,如果您使用的是舊版本的jQuery(HTML5數據屬性只能通過jQuery 1.4.3+中的'data()'獲得)。 – 2013-05-11 16:23:29

+0

我錯過了@PaleshMondal說...看到他的答案在下面。 – 2013-05-11 16:26:13

+0

@Matt警報(目標)給出正確的值。 – Ravi 2013-05-11 16:42:34

回答

1

重命名您的數據屬性data-select-target='child'這樣:

data-select-target='schild' 

而且$(target).html(data);這樣:

$('.' + target).html(data); 

,然後再試一次。

+0

我用正確的值更新了問題(替換部分)。我想在數據屬性中給出目標元素的名稱。不。它沒有那樣工作。 – Ravi 2013-05-11 16:45:21

+0

然後你必須使用'$('div [name ='+ target +']')。html(data);'而不是'$(target).html(data);' – 2013-05-11 16:54:43

+1

Thanks Palash。有效。但是,我可以通過沒有元素類型的名稱來選擇元素(我的元素將是動態的,可以是像select或div或input之類的東西)? – Ravi 2013-05-11 17:02:44

0

試試這個,

$('div[name="'+target+'"]').html(data); 

您所提供的「孩子」的選擇,但是你錯過了提供無論是「ID」,「階級」或「標記」。