jQuery在控制台中工作而不是脚本'语法错误,意外h4'

时间:2016-06-09 13:49:27

标签: jquery wordpress

我收到此错误

  

解析错误:语法错误,第76行////中的意外'h4'(T_STRING)

我正在使用的代码行是:

jQuery(function(){
    jQuery('h4:contains("Billing Details")').text("Destination Details").addClass("destinationheading")
})

如果我从脚本中删除它并将其手动输入控制台,它可以正常工作。是什么导致了这个?如果它有任何不同,这是在wordpress'函数文件。

该函数位于一个回显javascript的php函数内。

PHP函数:

add_action( 'woocommerce_admin_order_data_after_billing_address', 'my_custom_checkout_field_display_admin_order_meta', 10, 1 );

function my_custom_checkout_field_display_admin_order_meta($order){


    echo '<p><strong>'.__('Origin First Name').':</strong> ' . get_post_meta( $order->id, 'Origin First Name', true ) . '</p>';
    echo '<script>jQuery(function(){ jQuery('h4:contains("Billing Details")').text("Destination Details").addClass("destinationheading") }) </script>';

}

2 个答案:

答案 0 :(得分:1)

你正在尝试做三重嵌套引号 - PHP中的第一个单引号,然后是JS中的单引号和双引号。因此,您结束PHP字符串。尝试使用\'\"来转义引号字符。

您的脚本目前解释如下:

echo '...jQuery(' h4:contains("Billing Details") ').text(...)';

所以PHP会将h4:contains("Billing Details")视为自己的代码。转义字符 - 使用此行:

echo "<script>jQuery(function(){ jQuery('h4:contains(\"Billing Details\")').text(\"Destination Details\").addClass(\"destinationheading\") }) </script>";

答案 1 :(得分:1)

请参阅注释使用转义为\

add_action('woocommerce_admin_order_data_after_billing_address','my_custom_checkout_field_display_admin_order_meta',10,1);

function my_custom_checkout_field_display_admin_order_meta($ order){

echo '<script>jQuery(function(){ jQuery(\'h4:contains("Billing Details")\').text("Destination Details").addClass("destinationheading") }) </script>';