【问题标题】:Getting two elements with same ids获取具有相同 id 的两个元素
【发布时间】:2016-01-02 21:07:07
【问题描述】:

我正在尝试获取两个 <a> 元素的值,但 jQuery 只获取并附加第一个。

$bahisleriCek = mysql_query("SELECT * FROM bahis");
while ($bahisleriCekx = mysql_fetch_array($bahisleriCek)){


echo "<div id='tekbahis'";
echo "Bahis İsim: " . $bahisleriCekx['isim'] . "<br>";
echo "Evet Oranı: " . "<a onclick='evetOranGonder()' href='#' id='evetoran' >" . $bahisleriCekx['evetoran'] . "</a><br>";
echo "<hr>";
echo "</div>";
?>

<script>
function evetOranGonder(){

var evetoran=$("#evetoran").text();

$("#kupon").append(evetoran + '<br>');

}

</script>

<?

}

我尝试创建一个包含循环编号的数字变量并尝试将其放在我的 id 旁边,但随后 jQuery 只选择了最后一个。

如何获取所有元素的内部值并附加它们?谢谢。

【问题讨论】:

  • 拥有两个具有相同 ID 的元素是无效的 HTML(一个 ID 代表一个对象/元素),这就是 jquery/etc 并不真正支持它的原因。
  • 元素的 ID 不应相同。
  • 我尝试过上课,但后来它全选并附加了它们。我只想附加用户选择的那个。
  • @Ece 您可以通过使用document.getElementsByClassName 选择单个类项并指定索引来过滤掉您不想要的类。
  • @Eco 在这种情况下,您希望为每次迭代分配唯一的 ID。

标签: javascript php jquery jquery-ui


【解决方案1】:

有效的 HTML 规定 ID 应该是唯一的。作为一种解决方法,你可以做

$('[id="value"]')

但理想情况下,您应该修复您的标记。如果您想通过标识符对字段进行“分组”,请改用类。

<a ... class="mylinks">...</a>

然后全选。

$('.mylinks')

您似乎正在尝试选择事件发生的元素。在这种情况下,在事件处理程序中,关键字“this”将引用处理程序所作用的元素。

$(selector).on('click', function(){
    //the following line would take the element that was clicked and append it to something else.
    $(someOtherElementSelector).append(this);
});

【讨论】:

  • 我尝试过上课,但后来它全选并附加了它们。我只想附加用户选择的那个。
  • $(".evetoran").on('click', function (){ $("#kupon").append($(this).text()); });我将您的代码更改为我的代码,并且有效。谢谢!
【解决方案2】:

ID 以这种方式被调用是有原因的——它应该是唯一的,以便它可以识别一个元素。您可能想改用“名称”,然后使用 document.getElementsByName 获取具有指定名称的所有元素 - 它返回一个数组。看看http://www.w3schools.com/jsref/met_doc_getelementsbyname.asp

【讨论】:

    猜你喜欢
    • 2011-03-06
    • 2017-06-09
    • 2015-09-11
    • 1970-01-01
    • 1970-01-01
    • 2020-05-19
    • 2017-06-13
    相关资源
    最近更新 更多