javascript - JQuery 获取仅带有 # 的链接

标签 javascript php jquery mysql

由于某种原因,我的变量 $startwith 只获取 home.php 而不是以“#”开头的链接。(例如.href =“#A”)... 这是我的 JQuery 表单

    <ul>
            <li><a href="home.php">Home</a></li>
            <li class="dropdown"><a href="authors.php">Authors</a>
                <div class="dropdown-content">
                    <a href="viewAuthor.php">View Author Profile</a>
            </li>
            <li class="dropdown"><a href="books.php">Books</a>
                <div class="dropdown-content">
                    <a href="viewBookList.php">View Books</a>
                </div>
            </li>

            <li class="dropdown"><a href="publishers.php">Publishers</a>
                <div class="dropdown-content">
                    <a href="publishers.php">View Publishers</a>
                    <a href="addPublisher.php">Add Publisher</a>
                </div>
            </li>

            <li class="dropdown"><a href="genres.php">Genres</a>
                <div class="dropdown-content">
                    <a href="genres.php">View Genres</a>
                    <a href="addGenre.php">Add Genre</a>
                </div>
            </li>
            <li><a href="signout.php">Sign Out</a>
                <br>
        </ul>

        <br><br>
<script>
            $(function () {
                $("a[href^='#']").on('click', function () {

                    var sW = $('a').attr('href').replace("#", "");

                    $.get("getpublisher.php", {startsWith: sW})
                            .done(function (data) {
                                $('#listData').html(data);
                            });

                });
            });
        </script>
        <div align="center">
            <a href="#A">A | </a>
            <a href="#B">B | </a>
            <a href="#C">C | </a> 
            <a href="#D">D | </a>
            <a href="#E">E | </a> 
            <a href="#F">F | </a>
            <a href="#G">G | </a>
            <a href="#H">H | </a>
            <a href="#I">I | </a>
            <a href="#J">J | </a>
            <a href="#K">K | </a>
            <a href="#L">L | </a>
            <a href="#M">M | </a>
            <a href="#N">N | </a>
            <a href="#O">O | </a>
            <a href="#P">P | </a>
            <a href="#Q">Q | </a>
            <a href="#R">R | </a>
            <a href="#S">S | </a>
            <a href="#T">T | </a>
            <a href="#U">U | </a>
            <a href="#V">V | </a>
            <a href="#W">W | </a> 
            <a href="#X">X | </a> 
            <a href="#Y">Y | </a> 
            <a href="#Z">Z | </a>

        </div>

        <div id="listData"></div>

getpublisher.php 在这种情况下,当我 echo $startWith 时,它显示了 home.php 并且我的查询返回了 0..知道如何更改吗?

$startsWith = $_GET['startsWith']; 

$sql = "SELECT * FROM `publisher` WHERE publisher_name LIKE '"+$startsWith+"%' ORDER BY publisher_name ASC";
$r = mysqli_query($link, $sql);
$rowcount = mysqli_num_rows($r);
//echo $sql ;

if ($rowcount > 0) {


    while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
        echo $row['publisher_name'] . "<br>";
    }
} else {
    echo "0 results";
}

最佳答案

在点击处理程序中,您需要被点击元素的 href。

var sW = $('a').attr('href').replace("#", "");

这将获取第一个<a>的href页面中的标签

更改为

var sW = $(this).attr('href').replace("#", "");

事件处理程序内部 this是发生事件的元素

关于javascript - JQuery 获取仅带有 # 的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38257653/

相关文章:

php - 自动检查 Woocommerce 结帐页面中的创建帐户字段

javascript - 选择输入元素的子元素

javascript - 如何在javascript中创建别名

javascript - 使用 onClick 从列表中删除单个项目

javascript - 谷歌地图缩放按钮未显示在窄屏幕上

javascript - 使用 Jquery 错误地切换样式表

javascript - 如何在 jQuery 中仅选择包含其他 div 的 div 中的文本?

javascript - jqgrid 中没有使用 XML 加载数据

php - 在不循环 300 个查询的情况下从表中获取值的更好方法

php - 将 PHP 对象图序列化/反序列化为 JSON