2012-09-07 111 views
4

將html元素傳遞給jQuery時出現問題。我知道用attr()我們可以訪問屬性。不過,我覺得我做錯了什麼。從onclick事件將HTML屬性傳遞給jQuery函數

這是我簡單的jQuery功能:

<script type="text/javascript"> 
    function test(value) { 
     alert(value); 
    } 
</script> 


我已經通過foreach循環創造了一個動態列表框:

<select multiple="multiple" name="factors1" id="main_factors" style="width: 200px; height: 200px;"> 

<?php foreach ($array as $option): ?> 
    <option onclick="test(<script>this.attr('title').value</script>);" 
      id="<?php echo $option[0]; ?>" 
      title="<?php echo $option[2]; ?>" 
      value="<?php echo $option[0]; ?>"> 
     <?php echo $option[1]; ?> 
    </option> 
<?php endforeach ?> 

</select> 

我想,當有人點擊列表框中的項目例如,它的項目顯示在我的消息框中。但是,這段代碼對我來說不起作用。

onclick="test(<script>this.attr('title').value</script>);" 

如何從onclick屬性向我的函數發送標題屬性值?

在此先感謝。

回答

2
onclick="test(this)" 

function test(value) 
{ 
    alert($(value).attr('title')); 
} 

see demo

+0

這將幫助你@Mohammad –

+0

@ user108:'onchange'事件優於'onclick'事件同時使用'select'元素 –

+0

是的,你是對的,但他想'onclick'這樣。 – Sender

2

試試這個代碼。我認爲你在代碼中犯了一個錯誤。

<select multiple="multiple" name="factors1" id="main_factors" style="width: 200px; height: 200px;" onchange="test(this.value);"> 

<?php foreach ($array as $option): ?> 
<option id="<?php echo  $option[0]; ?>" title="<?php echo $option[2]; ?>" 
value="<?php echo $option[0]; ?>"><?php echo $option[1]; ?></option> 
<?php endforeach ?> 


</select> 

而在你的jQuery:

<script type="text/javascript"> 
    function test(value) 
     { 
     alert(value); 
     } 
    </script> 
+2

'onchange'事件優於'onclick'事件,同時使用'select'元素 –

+1

改進後感謝 –

+1

'onchange'事件應該在'